博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#的闭包
阅读量:5316 次
发布时间:2019-06-14

本文共 535 字,大约阅读时间需要 1 分钟。

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

 

 

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

 

 

先看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

 

 

 



 

 

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

 

转载于:https://www.cnblogs.com/magicianlyx/p/5197797.html

你可能感兴趣的文章
大道至简阅读笔记02
查看>>
如何让在panel里的子窗体随panel的大小改变而变化?(转)
查看>>
Concurrent包总结——线程安全的集合操作
查看>>
WPF简单模拟QQ登录背景动画
查看>>
Where to go from here
查看>>
Bitmap和Drawable相互转换方法
查看>>
bzoj 2038 小Z的袜子
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
自定义线程池
查看>>
freebsd 实现 tab 命令 补全 命令 提示
查看>>
numpy调试
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
python脚本检查TCP端口是否正常
查看>>
梯度下降法与方向导数
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
Handler消息传递机制
查看>>
linux 查看系统信息
查看>>