c# - Get exception when I try to raise an event -


मुझे एक एन्यूम मिला है:

  सार्वजनिक एंमान स्प्रेग {dansk, svensk, norsk} < / Code> 

एक विधि में मैं एक घटना बढ़ाऊंगा और जानकारी को चलाने के लिए enum का उपयोग करूँगा:

  सार्वजनिक प्रतिनिधि शून्य BrugerSprogChanged (ऑब्जेक्ट प्रेषक, Sprog sprog); क्लास क्लैज {सार्वजनिक आयोजन BrugerSprogChanged brugerSprogChanced; सार्वजनिक क्लैज () {} निजी शून्य कॉम्बो बॉक्स डायोमेट्रसप्रोग सेलेक्ट इंडीज बदलना (ऑब्जेक्ट प्रेषक, इवेंटएरग्स ई) {स्पॉगर स्पॉग = खोजस्प्रोग ((स्ट्रिंग) (कॉम्बो बॉक्स) प्रेषक)। चयनित ईटम); DocumentSprogChanged (यह, sprog); // & lt; - यहां हमारे पास समस्या है}}  

जब कोड घटना को उठाएगा मुझे एक अपवाद मिलता है जब दस्तावेजप्रोग्राफिक चेंजिंग (यह, स्पर्ज) कहा जाता है:

ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण के लिए सेट नहीं किया गया था

"यह" और "स्प्राग" शून्य।

किसी भी सुझाव?

आसान तरीका है यूनम् को छोड़ना और इसके बजाय एक पूर्णांक / स्ट्रिंग का उपयोग करना है, लेकिन फिर मैं कुछ बदसूरत कोड के साथ समाप्त होता है।

आम तौर पर एक घटना को कॉल करने के लिए आपको यह जांचना होगा कि यह हैंडलर रिक्त नहीं है:

  var हैंडलर = दस्तावेजप्रशोग परिवर्तित; // स्थानीय संदर्भ लें अगर (हेन्डलर! = नल) {dokumentSprogChanged (यह, स्प्रेग); }  

इस तरह से आप इसे सुरक्षित रूप से बढ़ा सकते हैं।

EDIT

आपको इस तरह से ईवेंट को पंजीकृत करना होगा :

<पूर्व> सार्वजनिक ईवेंट BrugerSprogChanged brugerSprogChanced; .... brugerSprogChanced + = class_brugerSprogChanced; .... शून्य class_brugerSprogChanced (ऑब्जेक्ट प्रेषक, EventArgs ई) {// वहाँ हैंडल}

Comments

Popular posts from this blog

asp.net - Procedure or function "Procedure name" expects a parameter "Param name" which was not supplied occurs rarely -

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -

c++ - Redefined variable in the other module -