社区
C#
帖子详情
匿名方法用在事件中的奇怪用法,高手解释下
hongyelzg
2007-01-07 02:15:12
void init()
{
int i=0;
this.Click+=delegate(object sender,EventArgs)
{
MessageBox.Show(i.ToString());
};
}
在这个事件中可以访问i的值,看似本来就可以,但是这个是个事件该如果理解,
...全文
192
1
打赏
收藏
匿名方法用在事件中的奇怪用法,高手解释下
void init() { int i=0; this.Click+=delegate(object sender,EventArgs) { MessageBox.Show(i.ToString()); }; } 在这个事件中可以访问i的值,看似本来就可以,但是这个是个事件该如果理解,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
greenery
2007-01-07
打赏
举报
回复
引用:MSDN
匿名方法的参数的范围是 anonymous-method-block。
在目标在块外部的匿名方法块内使用跳转语句(如 goto、break 或 continue)是错误的。在目标在块内部的匿名方法块外部使用跳转语句(如 goto、break 或 continue)也是错误的。
如果局部变量和参数的范围包含匿名方法声明,则该局部变量和参数称为该匿名方法的外部变量或捕获变量。例如,下面代码段中的 n 即是一个外部变量:
int n = 0;
Del d = delegate() { System.Console.WriteLine("Copy #:{0}", ++n); };
与局部变量不同,外部变量的生命周期一直持续到引用该匿名方法的委托符合垃圾回收的条件为止。对 n 的引用是在创建该委托时捕获的。
匿名方法不能访问外部范围的 ref 或 out 参数。
在 anonymous-method-block 中不能访问任何不安全代码。
这个是比较特殊,局部变量的生命周期因为匿名方法而改变了。哈哈。
匿名内部类详解
本文深入探讨了Java
中
的匿名内部类概念,包括其定义、使用场景及如何简化代码编写。通过实例解析,展示了匿名内部类在实际编程
中
的应用,并解答了关于匿名内部类方法调用的问题,提供了多种调用方法的解决方案。
JavaScript
中
的匿名函数
本文详细解析JavaScript
中
函数声明与函数表达式两种定义方式,包括Function对象的概念、匿名函数的使用及调用方法,帮助读者深入理解JS函数机制。
python
中
一些奇
奇怪
怪的高级函数
用法
本文介绍了Python
中
的高级函数
用法
,包括高阶函数、匿名函数(lambda)、闭包的概念与应用、装饰器(包括普通装饰器、带参数装饰器和类装饰器)以及偏函数和sort()函数的使用。
委托与
匿名方法
本文深入解析了C#
中
的
匿名方法
和委托,包括Action和Func的使用,以及如何利用
匿名方法
简化代码,提高开发效率。同时介绍了预置委托类型Predicate及Comparison在实际开发
中
的应用。
Javascript的
奇怪
用法
本文探讨了AngularJS源码
中
的奇特JavaScript写法,包括立即执行函数表达式和创建匿名类实例的方法,这些技巧有助于理解复杂代码结构并为构建DI机制提供思路。
C#
111,131
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章