2011-06-27 8 views
9

मैं विजुअल स्टूडियो के स्वचालित रूप से जेनरेट किए गए ब्लॉक में से किसी एक का उपयोग करते समय ईवेंट के लिए जेनरेट किए गए डिफ़ॉल्ट कोड को नियंत्रित करने में सक्षम होना चाहता हूं।क्या विजुअल स्टूडियो के भीतर ऑटो जेनरेटेड इवेंट हैंडलर कोड को बदलना संभव है?

void HandlerName(object sender, HandlerEventArgs e) { 
    throw new NotImplementedException(); 
} 

मैं निम्नलिखित को यह परिवर्तन करना चाहते हैं:

private void HandlerName(object sender, HandlerEventArgs args) { 
    throw new NotImplementedException(); 
} 

अर्थात् यह args तर्क यह है कि मैं हमेशा परिवर्तित कर सकते हैं वर्तमान टेम्पलेट इस प्रकार है।

अद्यतन: इसके अलावा यह नीति है कि हम यहां निजी सदस्यों के लिए टिप्पणियां भी शामिल करते हैं, इस प्रकार मेरी आवश्यकता के लिए एक अन्य उपयोग-केस भी डिफ़ॉल्ट टिप्पणी उत्पन्न करना है।

अद्यतन 2: मैं अब एक गैर मानक नामकरण परंपरा के प्रमाण के कारण args को e का नाम बदलने के लिए इच्छुक के लिए तर्क वापस लेना, हालांकि मैं अभी भी टेम्पलेट स्पष्ट पहुँच संशोधक और डिफ़ॉल्ट टिप्पणी के लिए यदि संभव हो तो ओवरराइड करना चाहेंगे ।

+2

स्पष्ट रूप से, मैं इसे स्वचालित रूप से 'निजी' पर रखना चाहता हूं। –

+0

सहमत हैं, हालांकि यह मेरे लिए उतना महत्वपूर्ण नहीं है जितना कि निजी के लिए सदस्यों के लिए डिफ़ॉल्ट पहुंच संशोधक है। मैं विशेष रूप से 'ई' के बजाय 'ई' की बजाय 'ए' का उपयोग करना चाहता हूं क्योंकि मैं लैम्ब्डा अभिव्यक्तियों के भीतर 'ई' का उपयोग करता हूं, विशेष रूप से लैम्ब्डा कार्यक्रम जहां '(एस, ई)' वांछित है, हालांकि मैंने हाल ही में बदल दिया है '(एस, ए)'। –

+3

एक कारण है कि ईवेंट तर्क पैरामीटर हमेशा 'e' नाम दिया जाता है। यह एक मानक सम्मेलन है।नेट दुनिया, सभी आधिकारिक और अनधिकृत स्टाइल गाइड द्वारा अनुशंसित, और मैं अत्यधिक सलाह देता हूं कि आप इसका पालन करना शुरू करें। इसे 'तर्क' में संशोधित करना काफी गैर-मानक है, जो पूरी तरह से लाभ के लिए पठनीयता को नुकसान पहुंचाता है। –

उत्तर

1

मुझे लगता है कि e प्रतिनिधि हस्ताक्षर (delegate void HandlerEventHandler(object sender, HandlerEventArgs e)) से आता है, तो आप भी प्रतिनिधि हस्ताक्षर बदले बिना इसे बदल नहीं सकते हैं ...

+0

बहुत समझने योग्य तर्क थॉमस, इसके लिए +1। मैं अभी भी वीएस को स्वचालित रूप से प्रारूपित करने के तरीके में बहुत दिलचस्पी लेता हूं, यहां तक ​​कि 'e' का नाम छोड़ देता हूं। मुझे पता है कि मैं जो पूछ रहा हूं वह मैन्युअल रूप से ओवरराइड करने में केवल कुछ सेकंड लेता है, हालांकि यह अभी भी कुछ सेकंड है :) –

0

क्या आप कह रहे हैं कि जब आप ईवेंट हैंडलर बनाते हैं तो आप ऑटो-जेनरेट कोड बदलना चाहते हैं?

मेरा उत्तर नहीं है, लेकिन मुझे सच में यकीन नहीं है कि आपको क्यों आवश्यकता होगी।

+0

मेरा तर्क प्रदान किए गए उदाहरण के भीतर सचित्र है, हालांकि मैं हैंडलर के लिए डिफ़ॉल्ट टिप्पणियां प्रदान करके इसे और विस्तारित करना चाहता हूं। निजी सदस्यों को टिप्पणी करने के लिए यहां हमारे लिए नीति है। –

0

मामले आप अभी भी ऑटो के लिए कुछ परिवर्तन करना चाहते हैं में इवेंट हैंडलर के लिए जेनरेट कोड, मैं कुछ वर्षों से विजुअल स्टूडियो के लिए this एक्सटेंशन का उपयोग करता हूं।

अधिक स्वच्छ ईवेंट हैंडलर नाम उत्पन्न करना बहुत उपयोगी है। जैसा कि आप देखेंगे, txtName_LostFocus जैसे कुछ उत्पन्न करने के बजाय, एक्सटेंशन आपको इस तरह के नाम के साथ एक विधि सुझाएगा: OnNameLostFocus।

यह सहायता अंडरस्कोर और उपसर्गों से छुटकारा पाने में मदद करती है जिसे हम आमतौर पर नियंत्रण में जोड़ते हैं। एक्सटेंशन में आपके द्वारा इच्छित सभी उपसर्ग जोड़ने के लिए कॉन्फ़िगरेशन स्क्रीन है।

लेकिन जो कुछ भी मैं कहता हूं वह आपके प्रश्न का उत्तर देने में सहायक नहीं है। यहां वह सहायता है जहां यह मदद करता है -> उस कोड में जिसे आप डाउनलोड कर सकते हैं, आप देख सकते हैं कि इंजन इवेंट हैंडलर विधि के नाम को प्रतिस्थापित करने के लिए कैसे काम करता है और मुझे पूरा यकीन है कि आपको किसी भी तर्क का नाम बदलने का समाधान मिल सकता है (यदि आप अभी भी चाहते हैं) और भी, एक स्पष्ट संशोधक जोड़ें।

मैं समाधान ढूंढने की कोशिश करूंगा और आपको अपनी प्रगति के बारे में बता दूंगा।

अद्यतन: आप Resharper का भी उपयोग कर सकते हैं जो स्वचालित रूप से क्लीन अप इंजन का उपयोग करके आप के लिए स्पष्ट संशोधक जोड़ना चाहते हैं।

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