2012-12-20 20 views
5

मैं CS0079 संकलन त्रुटि मिली जब मैं नीचे दिए गए कोड को चलाने के लिए करने की कोशिश की:सी # 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 : The event MyClassE.Error can only appear on the left hand side of += or -=

आसपास खोज की, लेकिन कैसे हल करने को समझ नहीं सकता यह।

जोड़ा गया: यदि (MyClass.Error! = Null) या MyClass.Error (शून्य, शून्य);

ही CS0079 त्रुटि प्राप्त करें।

CS0079 : The event MyClassE.Error can only appear on the left hand side of += or -=

क्या कोई इस पर मेरी सहायता कर सकता है?

+0

का संदर्भ लें प्रयास करें? –

+0

क्या यह कोड 'MyClassE' क्लास या किसी अन्य का हिस्सा है? – Rafal

+0

हाँ, यह कोड MyClassE क्लास का हिस्सा है। – Chris

उत्तर

6

आप एक घटना निर्धारित नहीं कर सकते, तो आप सिर्फ जोड़ सकते हैं या उस पर संचालकों निकाल सकते हैं। तो, के रूप में त्रुटि कहते हैं, तुम बस क्या करना चाहिए:

public delegate void MyClassEHandler(MyClassEParam param); 

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

और Delegate.Combine आप के लिए जादुई काम करेंगे।

+0

इसके अलावा इसे 'हटाने' एक्सेसर्स की आवश्यकता है। –

+0

जोड़ा गया, यह थोड़े अंतर्निहित है, लेकिन इस तरह बेहतर है :) – SWeko

+0

मेरा मतलब था कि आपको अपने स्निपेट में स्पष्ट रूप से 'Delegate.Combine' को कॉल करने की आवश्यकता नहीं है, तो आप केवल एक = = करते हैं और नए हैंडलर को आमंत्रण में जोड़ा जाता है सूची। – SWeko

2

इस

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); 
} 

} 

आप अपना पूरा कोड पोस्ट कर सकते हैं Intercepting add remove of c# event and delegates

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^