首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 2.0 規格:匿名方法 (5) - 外部變數捕獲與實例化

     編輯:關於C語言

外部變數定義

包含匿名方法表達式作用域內的區域變數、值參數、參數陣列;實例方法中的 this 視為值參數。

捕獲機制

  • 被引用的外部變數稱為「被捕獲」。
  • 生命期延長至引用該匿名方法的委托可被 GC 回收為止。

區域變數實例化

進入作用域即實例化。迴圈中宣告每次迴圈實例化;移出迴圈則僅一次。

捕獲迴圈變數範例


static D[] F()
{
    D[] result = new D[3];
    for (int i = 0; i < 3; i++)
    {
        int x = i * 2 + 1;
        result[i] = delegate { Console.WriteLine(x); };
    }
    return result;
}
// 輸出 1, 3, 5

每次迴圈產生獨立的 x 實例,委托捕獲各自的複本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved