当在声明此事件的类内部使用字段事件SomeNews
的名称时,此名称不引用事件本身,而是引用编译器创建的匿名私有代理D
,并且由于该原因D
可以间接地经由SomeNews();
字段事件和匿名代理
class MyClass
{
public event MyDelegate SomeNews;
...
}
调用(内部MyClass
)但是,如果代替MyClass
通过同时指定add
和remove
存取声明事件SomeNews
:
class MyClass
{
private delegate MyDelegate _someNews;
public event MyDelegate SomeNews
{
add
{
_someNews += value;
}
remove
{
_ someNews -= value;
}
}
...
}
然后甚至在MyClass
之内SomeNews
这个名字是指事件本身而不是底层代表_someNews
?我假设这因为尝试通过SomeNews()
调用_someNews
代表将导致编译时错误说“SomeNews事件只能出现在的+ =或左边 - =”
感谢名单
试试看并找出答案? – 2011-04-19 18:26:49