简单的理解:闭包变量是把局部变量的作用域扩展到回调函数,发生在匿名方法注册到委托上,而匿名方法中使用外部的局部变量

说什么都不如图示那么容易明白啊

先看C#的源码

    class Program
    {
        static void Main(string[] args)
        {
            ;
            Action act = () =>
             {
                 ;
                 Console.WriteLine(i + j);
             };
            i = ;
            act();
            Console.WriteLine(i);

        }
    }

基础知识:你必须知道C#在一次编译是会为匿名方法生成一个类,类中只有一个方法,是匿名方法的代码

看看ILdasm下的IL



对比一下普通的局部变量使用和上面的闭包变量使用的区别

最新文章

  1. SVN:Previous operation has not finished; run 'cleanup' if it was interrupted
  2. deb包的安装及dpkg命令小结
  3. 转载:《TypeScript 中文入门教程》 12、类型推导
  4. SimpleInjector的使用
  5. mgo-后续测试(指定字段,获取id)
  6. web双机热备添加心跳检测ip的时候填了网关导致外网ip不能上网
  7. 【转】Android Drawable Resource学习(十一)、RotateDrawable
  8. apache重写规则自动追加查询参数QSA
  9. bzoj2790
  10. linux块设备IO栈浅析
  11. Good Bye 2013---B. New Year Present
  12. YII 数据库,模型,登录验证
  13. 告诉你 IOS9.0 之后的Bitcode到底是什么!!
  14. Finding distance between two curves
  15. 老李秘技:LoadRunner支持参数文件极限是多大
  16. zend studio修改字体
  17. Java开源生鲜电商平台-账单模块的设计与架构(源码可下载)
  18. POJ_1556_The Doors_判断线段相交+最短路
  19. 用EF的三种方式(SqlServer数据库和Oracle数据库)
  20. 如何使用spring配合mybatis配置多个数据源并应用?

热门文章

  1. CentOS7 添加用户到 sudoers
  2. border --- 透明边框
  3. socket编程详解
  4. 培训笔记——ubuntu安装
  5. 【FLASK模板】set,with语句
  6. linux学习系列三
  7. Qt窗口屏幕居中显示
  8. CV2图像操作
  9. java:练习超市卖场
  10. Django 模版当中使用中文 UnicodeDecodeError at / 问题