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

C# 2.0 規格:匿名方法 (二-4) - 實作範例:多層作用域捕獲

     編輯:關於C語言

多層作用域捕獲實作

巢狀作用域各自產生封裝類別,子層引用父層封裝類別實例:


class Test
{
    void F()
    {
        int y = 123;
        for (int i = 0; i < 10; i++)
        {
            int z = i * 2;
            D d = delegate { Console.WriteLine(x + y + z); };
        }
    }
}

編譯器產生結構


class __Locals1 { public Test __this; public int y; }
class __Locals2 { public __Locals1 __locals1; public int z; public void __Method1() { Console.WriteLine(__locals1.__this.x + __locals1.y + z); } }

外層 __Locals1 捕獲 this 與 y;內層 __Locals2 捕獲 z 並引用 __Locals1。

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