C#的闭包
2024-10-06 20:24:36
简单的理解:闭包变量是把局部变量的作用域扩展到回调函数,发生在匿名方法注册到委托上,而匿名方法中使用外部的局部变量
说什么都不如图示那么容易明白啊
先看C#的源码
class Program { static void Main(string[] args) { ; Action act = () => { ; Console.WriteLine(i + j); }; i = ; act(); Console.WriteLine(i); } }
基础知识:你必须知道C#在一次编译是会为匿名方法生成一个类,类中只有一个方法,是匿名方法的代码
看看ILdasm下的IL
对比一下普通的局部变量使用和上面的闭包变量使用的区别
最新文章
- SVN:Previous operation has not finished; run 'cleanup' if it was interrupted
- deb包的安装及dpkg命令小结
- 转载:《TypeScript 中文入门教程》 12、类型推导
- SimpleInjector的使用
- mgo-后续测试(指定字段,获取id)
- web双机热备添加心跳检测ip的时候填了网关导致外网ip不能上网
- 【转】Android Drawable Resource学习(十一)、RotateDrawable
- apache重写规则自动追加查询参数QSA
- bzoj2790
- linux块设备IO栈浅析
- Good Bye 2013---B. New Year Present
- YII 数据库,模型,登录验证
- 告诉你 IOS9.0 之后的Bitcode到底是什么!!
- Finding distance between two curves
- 老李秘技:LoadRunner支持参数文件极限是多大
- zend studio修改字体
- Java开源生鲜电商平台-账单模块的设计与架构(源码可下载)
- POJ_1556_The Doors_判断线段相交+最短路
- 用EF的三种方式(SqlServer数据库和Oracle数据库)
- 如何使用spring配合mybatis配置多个数据源并应用?