繁体   English   中英

C#CS0079事件处理编译错误

[英]C# CS0079 Event Handling Compile Error

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

public delegate void MyClassEHandler(MyClassEParam param);

public class MyClassE
{
    public static event MyClassEHandler Error
    {
         add
         {
              MyClassE.Error = (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
         } 
    }
}

错误:

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

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

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

得到相同的CS0079错误。

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

谁可以帮我这个事?

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

public delegate void MyClassEHandler(MyClassEParam param);

public static event MyClassEHandler Error
{
     add
     {
          MyClassE.Error += value;
     } 
     remove         
     {
          MyClassE.Error -= value;
     } 
}

而且Delegate.Combine会为你神奇地工作。

试试这个

public delegate void MyClassEHandler(MyClassEParam param);  
static MyClassEHandler error;

public static event MyClassEHandler Error
{
 add
 {
      MyClassE.error += (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
 } 

 remove
 {
      MyClassE.Error -= (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
 } 

}

请参阅拦截添加删除c#事件和委托

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM