Orcas 版 C# 3.0 新特性:自動屬性
自 Visual Studio Orcas March CTP 發布以來,許多部落格探討其新特性。Scott Guthrie 近期在部落格發文介紹 C# 3.0
Orcas 版 C# 3.0 新特性:對象初始化器
對象初始化器讓編譯器自動生成屬性設值代碼,減少硬編碼行數。.NET 類型高度依賴屬性,傳統初始化需多行賦值: Person person = new Pers
充分發揮 C# 匿名方法的平台優勢(一)
C# 1.1 時代,使用委托需顯式聲明委托類型、定義匹配簽名的方法、再將方法與委托關聯。C# 2.0 的匿名方法提供同等功能,卻無需預先創建命名方法。 可將匿
充分發揮 C# 匿名方法的平台優勢(四)
範例 5:將匿名方法作為參數傳遞 與命名方法相同,匿名方法也可作為參數傳遞給函數。雖非常見用法,但未來必有需求。下列代碼展示將匿名方法與命名方法均傳遞給 Pa
CLR 中匿名函數實現原理深度解析(一)
C# 2.0 引入了透過 delegate 關鍵字實現匿名函數的功能,大幅減少樣板代碼。以按鈕點擊事件為例,傳統寫法需要單獨定義處理方法: button1.C
CLR 中匿名函數實現原理深度解析(二)
在 C# 2.0 中,編譯器會根據匿名函數的使用場景自動決定生成的方法是否為 static。這也是為何規範禁止在匿名方法中使用 goto、break、conti
CLR 匿名函數實現原理淺析 (3):多層作用域封裝類別與 Delphi 對比
多層作用域封裝策略 每個不同區域變數作用域產生一個封裝類別,子作用域封裝類別引用父作用域封裝類別實例,相同作用域變數與匿名方法綁定在同一封裝類別,維持一致生命週
充分利用 C# 匿名方法平台優勢 (2):變數範圍與參數傳遞
範例 2:變數範圍與外部變數捕獲 private delegate void Example2(); private void btnExample2_Cli
C# 2.0 規格:匿名方法 (二-3) - 實作範例:無捕獲與捕獲 this
無捕獲外部變數 // 原始 D d = delegate { Console.WriteLine(test); }; // 轉換 static void __
C# 2.0 規格:匿名方法 (1) - 語法、簽名、轉換規則
匿名方法表達式語法 anonymous-method-expression: delegate anonymous-method-signature_
C# 2.0 規格:匿名方法 (4) - 外部變數與捕獲範例
外部變數 作用域包含匿名方法的區域變數、值參數、參數陣列;實例方法的 this 亦屬之。 捕獲與生命期 被引用即被捕獲,生命期延長至委托可被 GC 為止。
C# 2.0 規格:匿名方法 (5) - 外部變數捕獲與實例化
外部變數定義 包含匿名方法表達式作用域內的區域變數、值參數、參數陣列;實例方法中的 this 視為值參數。 捕獲機制 被引用的外部變數稱為「被捕獲」