如果我写下面的代码,
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);
}
}
Run Code Online (Sandbox Code Playgroud)
编译器会抱怨:错误CS0079:事件MainClass.MyEvent' can only appear on the left hand side of+ ='或` - ='运算符.
为什么存在像这样奇怪的东西呢?如果我不能直接发射事件,为什么我会首先使用这样的东西?这是一个错误(我使用单声道)还是故意精致的设计?谁能请教我这背后的理由?提前致谢.