簡體   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