看资料 C# 委托和事件的时候遇到一段话,请帮忙解释下:谢谢 20

于是,Event出场了,它封装了委托类型的变量,使得:在类的内部,不管你声明它是public还是protected,它总是private的。在类的外部,注册“+=”和注销“-=”的访问限定符与你在声明事件时使用的访问符相同。 什么叫在类的内部,它总是private。既然在类的内... 展开
我有更好的答案
邀请更新
2009-06-22 最佳答案


如果你声明了一个事件,你看起来是声明了一个字段一样的东西,其实他生成了三个部分;
此方法用于注册和注销方法,你在类的外面使用+=和-=的时候:

第一个是以“此事件所属委托类型”为类型的字段
private MouseClickEventHandler _mouseClick;
你可以发现其实他和其他比如private string _name;类型的字段没区别,他的类型使用的是事件所使用的类型,而我相信你也看到这个字段是private的,这就是“在类的内部,不管你声明它是public还是protected,其实C#编译器是调用的这两个方法。而他们的访问修饰符是和事件一样的现有这样一个事件声明
public event MouseClickEventHandler MouseClick,它总是private的,注册“+=”和注销“-=”的访问限定符与你在声明事件时使用的访问符相同。”的意思,事件虽然是public的;
public remove_MouseClick(MouseEventHandler value),但是字段却是private的。

剩下两个是两个方法:
public add_MouseClick(MouseEventHandler value),这里都是public,就是“在类的外部

草薙在

采纳率:40% 擅长: C#/.NET

为您推荐:

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消