社区
C#
帖子详情
匿名方法用在事件中的奇怪用法,高手解释下
hongyelzg
2007-01-07 02:15:12
void init()
{
int i=0;
this.Click+=delegate(object sender,EventArgs)
{
MessageBox.Show(i.ToString());
};
}
在这个事件中可以访问i的值,看似本来就可以,但是这个是个事件该如果理解,
...全文
151
1
打赏
收藏
匿名方法用在事件中的奇怪用法,高手解释下
void init() { int i=0; this.Click+=delegate(object sender,EventArgs) { MessageBox.Show(i.ToString()); }; } 在这个事件中可以访问i的值,看似本来就可以,但是这个是个事件该如果理解,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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 中不能访问任何不安全代码。
这个是比较特殊,局部变量的生命周期因为匿名方法而改变了。哈哈。
c#学习笔记.txt
可以在方法
中
更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。如果没有ref,out则默认为值传递,虽然可以在方法
中
修改这个参数的值,但是修改后的值不会还会到调用...
匿名类
在开发
中
,我们有时会像下面的代码一样声明一个匿名类:可以看出,在匿名类的语法
中
并没有为其命名,而是直接的一个new { }就完事了。从外部看来,我们根本无法知道这个类是干神马的,也不知道它有何作用。 ...
python类的静态方法私有方法_求助Python
高手
,Python里有静态方法和私有方法,这两者有什么区别呢?...
匿名用户1级2016-06-23 回答静态方法不能访问实例的属性,私有访问只能在类的内部访问,不能被实例访问,详细看代码:classPerson:age=0wegiht=0__sex=''def__init__(self):pass@staticmethoddefget_stactic_age():...
如何成为Android
高手
前言 本文pdf下载链接 配套视频连接 若立志成为Android
高手
,如有耐心,...这可不是想象
中
写几行代码那么容易的事情,但也不是不可实现。 如何做? 1,学会懒惰!
奇怪
吧?但是,你一定也听说过和感受过这
android
高手
之路
若立志成为Android
高手
,如有耐心,“一瓶一钵足矣”。 “天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。”想成为Android
高手
?这可...
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章