के साथ एक एक्शन ऑब्जेक्ट कैसे बनाएं, सबसे पहले, मैं वीएस2005 और सी # 2.0 का उपयोग कर रहा हूं।सी # 2.0 जेनरिक: शून्य पैरामीटर
मैं चयनित इंडेक्स चेंजेड ईवेंट के अंदर से एक कॉम्बोबॉक्स 'टेक्स्ट प्रॉपर्टी सेट करने का प्रयास कर रहा हूं। StackOverflow पर यहाँ एक और thread से निम्नलिखित तरीके से किया प्रस्तावित किया गया था:
BeginInvoke(new Action(() => someCombobox.Text = "x"));
अब, यह सब से पहले मेरे लिए एक संकलक त्रुटि देता है। मेरा मानना है कि ऐसा इसलिए है क्योंकि एक्शन ऑब्जेक्ट दो भाषा विनिर्देशों में अलग-अलग व्यवहार करता है। सी # 2.0 में, एक्शन ऑब्जेक्ट को सभी घोषणाओं में <T>
संरचना की आवश्यकता होती है। शायद मैं गलत हूं, लेकिन मैं इसे स्पष्ट करना चाहता हूं।
BeginInvoke(new Action<string>(delegate { someCombobox.Text = "x"; }), new object[] { "" });
हालांकि, यह सिर्फ मेरे लिए बहुत अजीब मैं करने के लिए है दिखाई देती है कि एक प्रकार पैरामीटर (खासकर जब से मैं के लिए इच्छुक नहीं कर रहा हूँ के साथ कार्रवाई वस्तु को परिभाषित:
क्या काम करता है निम्नलिखित है किसी भी पैरामीटर पास करें)! किसी भी तरह से इस पैरामीटर को हटाने से खाली नई वस्तु [] अप्रचलित हो जाएगी, जो मैं चाहता हूं।
क्या कोई मुझे उपर्युक्त कॉल को सरल बनाने में मदद कर सकता है?
अंत में, क्या यह गारंटी है कि BeginInvoke चयनित इंडेक्स चेंज के बाद खत्म हो जाएगा और इस प्रकार सही टेक्स्ट के साथ combobox 'टेक्स्ट प्रॉपर्टी को अपडेट करेगा?
मैं वास्तव में इन सवालों के जवाब जानने के लिए सराहना करता हूं।
संकलन त्रुटि लैम्ब्डा अभिव्यक्ति की वजह से है। लैम्ब्डा सी # 3.0 में नए हैं, और प्रतिनिधि निर्माण वाक्यविन्यास का एक छोटा रूप है। –