C#_实现闭包函数

来源:互联网 发布:双色球算法必中6红246 编辑:程序博客网 时间:2024/06/12 01:43
    delegate void ActionCallback();    class Start    {        static void Main(string[] args)        {            for (int i = 0; i < 5; i ++ )            {                // 分析:编译器将闭包引用的局部变量转换为匿名类型的字段,导致了局部变量分配在堆中。                // 备注:C# 编译器帮我们做了非常多的工作,如:自动属性、类型推断、匿名类型、匿名委托、Lamda 表达式、析构方法、await 和 sync、using、对象初始化表达式、lock、默认参数 等等,这些统称为“语法糖”。                NetworkCallback(() => {                    Console.WriteLine("i:" + i);                });            }            Console.ReadLine();        }        public static void NetworkCallback(ActionCallback Callback)        {            if (Callback != null)            {                Callback();            }        }    }

0 0