2009-02-27 13 views
25

मैं कार्रवाई प्रतिनिधि का उपयोग कर के कई ऑनलाइन उदाहरण में इस लाइन देखें:कार्रवाई प्रतिनिधि पैरामीटर

public event Action MyEvent; 

लेकिन जब मैं अपने खुद के कोड में यह कोशिश करते हैं, मैं यह त्रुटि

का प्रयोग मिलता है सामान्य प्रकार 'System.Action' '1' प्रकार तर्क

प्रलेखन निश्चित रूप से एक रूप का वर्णन करता है की आवश्यकता है किसी भी प्रकार के पैरामीटर के बिना कार्रवाई का। मैं क्या खो रहा हूँ?

+4

प्रश्न का उत्तर नहीं है, लेकिन आपको किसी ईवेंट के लिए कोई क्रिया का उपयोग नहीं करना चाहिए। घटनाओं के प्रतिनिधि के रूप में या तो EventHandler या EventHandler का उपयोग करें। –

+2

@ ग्रेगबीच, टिप के लिए धन्यवाद, लेकिन यहां कार्रवाई का उपयोग न करने का कारण क्या है? –

+0

@ आईजे.केनेडी यह जवाब बहुत बढ़िया है http://stackoverflow.com/a/803320/1608072 – caiosm1005

उत्तर

22

सुनिश्चित करें कि आपका एप्लिकेशन System.Core का संदर्भ दे रहा है।

संपादित करें - यह भी सुनिश्चित करें कि आप .NET 3.5 को सिस्टम के रूप में लक्षित कर रहे हैं .Core.dll उस संस्करण का हिस्सा है।

+0

और .NET 3.5 है ... –

+0

धन्यवाद! मेरे पास सिस्टम नहीं था। अधिक संदर्भ। यहां तक ​​कि जवाब जानने के बाद भी, मैं इसे दस्तावेज़ों में नहीं ढूंढ पाया। –

36

एंड्रयूज उत्तर पर विस्तार।

गैर-3.5 परिदृश्य में कार्रवाई का उपयोग करना पूरी तरह कानूनी है। बस इसे स्वयं परिभाषित करें।

public delegate void Action(); 
+0

जब तक आप इसे किसी एल्स लाइब्रेरी में पास नहीं कर रहे हैं, वह सिस्टम का उपयोग कर रहा है। कोर की कार्रवाई ... –

+3

@ सिमॉन, उस स्थिति में आप पहले से ही 3.5 (प्रत्यक्ष या परोक्ष रूप से) का उपयोग कर रहे हैं, इसलिए यह कोई समस्या नहीं है। – JaredPar

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