C#CS0079事件处理编译错误

Chr*_*ris 5 .net c# events compiler-errors

我尝试运行以下代码时遇到CS0079编译错误:

public delegate void MyClassEHandler(MyClassEParam param);

public class MyClassE
{
    public static event MyClassEHandler Error
    {
         add
         {
              MyClassE.Error = (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
         } 
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

CS0079:事件MyClassE.Error只能出现在+ =或 - =的左侧

搜索过但无法弄清楚如何解决它.

ADDED:if(MyClass.Error!= null)或MyClass.Error(null,null);

得到相同的CS0079错误.

CS0079:事件MyClassE.Error只能出现在+ =或 - =的左侧

谁可以帮我这个事?

SWe*_*eko 6

您无法设置事件,只需在其上添加或删除处理程序即可.所以,正如错误所说,你应该这样做:

public delegate void MyClassEHandler(MyClassEParam param);

public static event MyClassEHandler Error
{
     add
     {
          MyClassE.Error += value;
     } 
     remove         
     {
          MyClassE.Error -= value;
     } 
}
Run Code Online (Sandbox Code Playgroud)

这些Delegate.Combine意志会为你神奇地工作.