C#的闭包
2016-02-18 12:18
239 查看
简单的理解:闭包变量是把局部变量的作用域扩展到回调函数,发生在匿名方法注册到委托上,而匿名方法中使用外部的局部变量
说什么都不如图示那么容易明白啊
先看C#的源码
View Code
基础知识:你必须知道C#在一次编译是会为匿名方法生成一个类,类中只有一个方法,是匿名方法的代码
看看ILdasm下的IL
对比一下普通的局部变量使用和上面的闭包变量使用的区别
说什么都不如图示那么容易明白啊
先看C#的源码
class Program { static void Main(string[] args) { int i = 9; Action act = () => { int j = 8; Console.WriteLine(i + j); }; i = 10; act(); Console.WriteLine(i); } }
View Code
基础知识:你必须知道C#在一次编译是会为匿名方法生成一个类,类中只有一个方法,是匿名方法的代码
看看ILdasm下的IL
对比一下普通的局部变量使用和上面的闭包变量使用的区别
相关文章推荐
- c# josn 数据读取
- C# webbrowser 修改useragent
- C#中Uri类的解释
- CLR via C# 学习计划
- C#中的值类型和引用类型
- C#读取ini文件的方法
- C#绑定快捷键
- 从0自学C#06--多窗体共用对象
- C#设计模式09-装饰模式
- C#.net winfrom操作txt文件
- 生成一个“每小时变化一次的”用户名
- WinForm实现简单的拖拽功能(C#)(2)
- WinForm实现简单的拖拽功能(C#)
- 如何使用C#从word文档中提取图片
- 剖析设计模式编程中C#对于组合模式的运用
- C#XML生成与解析
- C#文件操作的两种方式
- C# 文件操作
- C#中的内存分配
- C#程序命令行 提示csc、ildasm C#命令不是内部或外部命令