Time of Update: 2018-12-06
C# 語言的前置處理器指令:#if#else#elif#endif# define#undef#warning#error#line#region#endregion#pragma#pragma warning#pragma checksum一、#if #if 使您可以開始條件指令,測試一個或多個符號以查看它們是否計算為 true。如果它們的計算結果確實為 true,則編譯器將計算位於 #if 與最近的 #endif 指令之間的所有代碼。以 #if 指令開始的條件指令必須用 #endif
Time of Update: 2018-12-06
C# 提供了一個很 NB 的機制:擴充方法。它可以讓使用者根據需要在類的外部為指定的類添加一些操作方法,而且這些方法和普通的執行個體方法使用起來完全一樣(都是通過類執行個體調用)。 C# 的擴充方法使用起來也非常簡單。比如我們要為系統裡最常用的 string 類添加一個方法 Jump,則可以使用以下方式:1 static class Class12 {3 public static string Jump(this string s)4 {5
Time of Update: 2018-12-06
我們的代碼裡會有很多的記憶體流失,如何快速的定位和修複這些記憶體的泄漏是一項非常重要的技能,在這裡分享一下如何從開發的代碼裡找到這種問題。常見的C++程式分為兩大類:MFC和Win32。先看第一種MFC程式如何找記憶體流失的問題。MFC程式比較容易一些,因為它已經提供了這個功能,我們建立一個MFC的工程,我們在看到每一個CPP檔案裡面都有這樣一句: 1: #ifdef _DEBUG 2: #define new DEBUG_NEW 3: #endifDEBUG_NEW
Time of Update: 2018-12-06
如前一篇所講的,我們可以通過調用_CrtDumpMemoryLeaks()這個方法來檢查程式是否存在記憶體流失,之後我又試了一下這個代碼: 1: int _tmain(int argc, _TCHAR* argv[]) 2: { 3: int* p = new int; 4: _CrtDumpMemoryLeaks(); 5: delete p; 6: return 0; 7:
Time of Update: 2018-12-06
點引用是地道的Objective-C 2.0的風格。它被使用於簡單的屬性set、get操作,但對象的其它行為不應該使用它。Setters中對NSString進行copy永遠不要僅僅retain一個字串。這避免了調用者在你不知道的情況下對字串作出了修改。不要作出那樣的假設:你接受的對象是一個NSString對象而不是NSMutableString對象。- (void)setFoo:(NSString *)aFoo {[foo_ autorelease];foo_ = [aFoo
Time of Update: 2018-12-06
C# 裝箱和拆箱、理論概念 、注意:在裝箱的過程中,會新產生一個堆(託管堆)對象,他實值型別的值複製到參考型別(堆對象)中,此後,實值型別變數的更改,不會影響參考型別。在拆箱時,會產生一個新的堆棧類型變數,將參考型別的值複製到實值型別(堆棧對象)中,此後新的實值型別的變化,也不會影響原來的參考型別。1、 裝箱和拆箱是一個抽象的概念2、 裝箱是將實值型別轉換為參考型別 ;拆箱是將參考型別轉換為實值型別 利用裝箱和拆箱功能,可通過允許實值型別的任何值與Object
Time of Update: 2018-12-06
If objrecordtemp.RecordCount > 0 Then Set nodxtemp = Me.TreeViewFloorDoor.Nodes.Add(nodx.Tag, tvwChild, objrecordtemp.Fields(0).Value, objrecordtemp.Fields(1).Value) nodxtemp.Expanded = True
Time of Update: 2018-12-06
委託這個東西,只可意會不可言傳,如果理解不了時候如鯁在喉,總不自在。但,我相信,總有一天你會恍然大悟。我恍然大悟了,那就把悟出來的東東說說。其實其實委託就是為了適應不可預知的東西。就像你在表單上放個按鈕,天知道你想幹什麼呢?但是天知道你肯定想幹點什麼!既然知道你肯定想幹點什麼,而且乾的事情肯定跟這個按鈕有關係。這個時候,委託就出現了,作業系統就把點擊這個按鈕要做的事情委託給你了。作業系統就寫個方法名(委託名),然後把按鈕以及點擊事件當作參數,然後,然後你就完成這個方法就好了,比如你想彈出一個對話
Time of Update: 2018-12-06
轉自:http://blog.3snews.net/html/30/34530-27563.html 在多線程編程中,我們經常要在背景工作執行緒中去更新介面顯示,而在多線程中直接調用介面控制項的方法是錯誤的做法,Invoke 和 BeginInvoke 就是為瞭解決這個問題而出現的,使你在多線程中安全的更新介面顯示。正確的做法是將背景工作執行緒中涉及更新介面的代碼封裝為一個方法,通過 Invoke 或者 BeginInvoke去調用,兩者的區別就是一個導致背景工作執行緒等待,而另外一個則不會。
Time of Update: 2018-12-06
引自:http://blog.csdn.net/alpsboy/archive/2006/09/05/1181025.aspx相信很多剛學C#的人都對這兩個概念感到迷惑,其時並不難(以前太重於技術可用性,比如:asp.net中的DataDrid怎麼用等問題,沒大研究過這方面),希望能對C#初學者有所協助。請看如下代碼:class A{...}class B{...}class App{ public static void Main() { A a = new A(); /
Time of Update: 2018-12-06
來自:http://www.51testing.com/?61753/action_viewspace_itemid_76398.htmlC#的抽象類別和方法,重載,覆蓋,隱藏2008-03-06 16:38:07 / 個人分類:編程學習 第四例 C#的抽象類別和方法,重載,覆蓋,隱藏 using System;namespace testClassApp{ /// <summary> /// Class1 的摘要說明。 /// </summary>
Time of Update: 2018-12-06
來自:http://www.cnblogs.com/dflying/archive/2006/04/01/364458.htmlC#面試基礎問題 English Version: http://dflying.dflying.net/1/archive/104_c_basic_interview_questions.html
Time of Update: 2018-12-06
本文介紹了作者希望在C# 4.0中希望看到的新特性,比如通過委託成員來實現介面、匿名傳回型別等等,但很遺憾,在C# 4.0中並沒有出現。1. 通過委託成員來實現介面在C# 4.0中可以通過委託來實現某個成員的介面,例如下面的代碼:public class Foo : IList { private List _Collection implements IList; public Foo() { _Collection = new
Time of Update: 2018-12-06
/// <summary> /// Creating a Watermarked Photograph with GDI+ for .NET /// </summary> /// <param name="rSrcImgPath">原始圖片的實體路徑</param> /// <param name="rMarkImgPath">浮水印圖片的實體路徑</param> /// <param name="
Time of Update: 2018-12-06
//擷取實體類裡面所有的名稱、值、DESCRIPTION值 public string getProperties<T>(T t) { string tStr = string.Empty; if (t == null) { return tStr; }
Time of Update: 2018-12-06
前兩年寫的東西,現在整理一下發出來!以前公司需要做WebService,並且對WebService的SoapHeader進行加密,所以就寫了這麼個東東!使用這個類,需要密鑰管理!為了保證資料的安全性往往要對資料進行加密,但是加密的缺點之一,就是影響程式的運行效率,所以,當時我的思路是只對使用者的登入資訊(使用者名稱,密碼)進行加密!資料用明文傳輸,使用者資訊驗證沒有通過的情況下, 不進行資料轉送。
Time of Update: 2018-12-06
關於#和##在C語言的宏中,#的功能是將其後面的宏參數進行字串化操作(Stringfication),簡單說就是在對它所引用的宏變數通過替換後在其左右各加上一個雙引號。比如下面代碼中的宏: #define WARN_IF(EXP) \ do{ if (EXP) \ fprintf(stderr, "Warning: " #EXP "\n"); } \ while(0)那麼實際使用中會出現下面所示的替換過程: WARN_IF
Time of Update: 2018-12-06
好久沒有寫C++程式了,感覺陌生了好多,單是一個int和string的互相轉換就搞了老半天,為了方便以後的工作,將它們寫下來以供參考。 1.int轉成string a、使用stringstream對象: 1: #include <iostream> 2: #include <string> 3: #include <sstream> 4: using namespace std; 5: int main(){ 6: stringstream
Time of Update: 2018-12-06
C語言中對變數的說明包括兩方面的內容:變數類型以及變數的儲存類型。變數類型如:int(整形),char(字元型)是用來說明變數所佔用的記憶體空間的大小。變數儲存類型用來說明變數的作用範圍。C語言的變數儲存類有:自動類、寄存器類、靜態類和外部類。關鍵字auto加在變數名及其類型前,用來說明它是自動變數。局部變數是指在函數內部說明的變數(有時也稱為自動變數)。用關鍵字auto進 行說明, 當auto省略時, 所有的非全程變數都被認為是局部變數, 所以auto實際上 從來不用。
Time of Update: 2018-12-06
C#中的類型分為實值型別和參考型別,很多初學者往往弄不清楚實值型別和參考型別的區別,其實實值型別和參考型別的區別是很明顯的。下面先討論一下實值型別和參考型別各包括那些類型。 C#中的實值型別包括基本的整型、浮點型、布爾型以及稍微複雜的結構和枚舉,參考型別包括字串、數組、類、委託以及介面等。實值型別一般都是比較簡單的,只包括資料的類型,當然結構是個例外,結構可以有自己的方法。參考型別一般是比較複雜的,參考型別的定義不僅包括資料,還包括一些處理資料的方法。