如果我写下如下代码:
class MainClass
{
static EventHandler _myEvent= delegate{};
static event EventHandler MyEvent
{
add{_myEvent += value;}
remove{_myEvent -= value;}
}
public static void Main (string[] args)
{
MyEvent(null,EventArgs.Empty);
}
}
编译器会报错:错误 CS0079: 事件 MainClass.MyEvent' 只能出现在 '+=' 或 '-=' 操作符的左侧。
为什么会有这样奇怪的限制?如果我不能直接触发一个事件,为什么我要在第一时间使用它呢?这是一个bug吗(我在使用mono)还是故意设计的微妙之处?请问有人可以教我背后的理由吗?提前感谢。