2009-07-08 18 views
9

OnLoad विधि और Load ईवेंट के बीच क्या अंतर है? मैं WinForm नियंत्रण विकसित कर रहा हूँ। क्या मुझे Load ईवेंट पर पंजीकरण करना चाहिए या OnLoad विधि ओवरराइड करना चाहिए? प्रत्येक के फायदे और नुकसान क्या हैं?ऑनलोड लोड और लोड ईवेंट के बीच अंतर?

उत्तर

12

मैं OnLoad ओवरराइड करने के लिए जाना चाहते हैं, तो आप CPU चक्र को छोड़ ईवेंट हैंडलर आह्वान करने के लिए।

सामान्य पैटर्न एक विधि को ओवरराइड करना है, यदि आप नियंत्रण से प्राप्त होते हैं; अन्यथा, घटना की सदस्यता लें।

लेकिन बेस क्लास 'OnLoad विधि को कॉल करना याद रखें, क्योंकि वह Load ईवेंट लागू हुआ था।

+3

माइक्रोसॉफ्ट के अनुसार, ऑनलोड लोड ओवरलोड करना '** ** व्युत्पन्न ** कक्षा में ईवेंट को संभालने के लिए पसंदीदा तकनीक है' (http://msdn.microsoft.com/en-us/library/system.windows देखें .forms.form.onload.aspx) –

+2

@TroyMoon यह थॉमस ने क्या नहीं कहा है? –

0

ऑनलोड लोड ईवेंट को संभालने के लिए VB.NET में उपयोग किया जाने वाला डिफ़ॉल्ट ईवेंट हैंडलर है। जब मैं लोड इवेंट में कोड संलग्न करने की आवश्यकता होती हूं तो मैं आम तौर पर इस विधि को ओवरराइड करता हूं। वहाँ अन्य Page Life Cycle घटनाओं के लिए भी डिफ़ॉल्ट कार्य हैं: OnPreRender, OnInit, आदि

+0

ओह ... बस एहसास हुआ कि आप Winform के बारे में पूछ रहे थे। पृष्ठ जीवन चक्र लिंक को रद्द करें। यद्यपि वही लागू होता है। – regex

+0

इसके अलावा, यह अन्य .NET भाषाओं में समान है, जैसे सी # (.NET ढांचे को मोटे तौर पर सी # में कोड किया गया था)। –

4

ऑनलोड लोड वह है जो लोड ईवेंट उठाता है। फ्रेमवर्क कक्षाओं में यह एक मानक पैटर्न है, और आम तौर पर अनुशंसित एक - किसी भी घटना Foo के लिए, आपके पास वर्चुअल संरक्षित विधि OnFoo है जो उस घटना को उठाती है; और वर्ग की कोई अन्य विधि सीधे घटना को उठाती है, लेकिन हमेशा OnFoo पर कॉल करती है।

यदि आपको this पर ईवेंट को संभालने की आवश्यकता है, तो यह आमतौर पर OnFoo को ओवरराइड करने के लिए आसान और तेज़ दोनों होता है।

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