2010-03-30 20 views
8

मैं एक वीबी प्रोग्रामर हूं जो सी # में अपना रास्ता काम कर रहा है। मैंने सीबी में घटनाओं को बनाने और बढ़ाने के बारे में सीखा और मुझे पता चला कि यह सी # में समान तरीके से नहीं किया गया है। क्या कोई ऐसे लेख में आया है जो मुझे समझने में मदद करेगा कि सी # में घटनाएं कैसे करें और शायद यह समझाएं कि यह वीबी में क्यों अलग है।वीबी और सी # में घटनाओं के बीच क्या अंतर है?

धन्यवाद

+0

यह प्रश्न वीबी नेट और सी # इवेंट सिंटैक्स में 'हैंडल' के बीच का अंतर बताता है http://stackoverflow.com/questions/794332/migrating-handles-from-vb-net-to-c – MarkJ

+0

धन्यवाद मार्कजे वास्तव में सराहना करता है आपकी मदद –

उत्तर

0

अंतर ज्यादातर वाक्यात्मक है।

this अंतरों के बारे में आसान संदर्भ देखें।

वीबीएनईटी में इवेंट हैंडलर को ईवेंट हैंडलर हस्ताक्षर में Handling कुंजी शब्द घोषित किया गया है। सी # में आपको इसे += के साथ पंजीकृत करने की आवश्यकता है।

वीबी.नेट में आप RaiseEvent के साथ ईवेंट को आमंत्रित करते हैं, सी # में आप सीधे प्रतिनिधि को कॉल करते हैं।

+0

आपकी मदद के लिए धन्यवाद ओडेड –

0

से पढ़ रहा है:

http://msdn.microsoft.com/en-us/library/aa645739(VS.71).aspx

सी # में एक घटना करने के लिए एक वर्ग के लिए जब कुछ दिलचस्प बात यह है एक वस्तु के लिए होता सूचनाएं के ग्राहकों के लिए उस वर्ग प्रदान एक तरीका है। घटनाओं के लिए सबसे परिचित उपयोग ग्राफ़िकल उपयोगकर्ता इंटरफेस में है; आम तौर पर, में नियंत्रण का प्रतिनिधित्व करने वाले वर्ग इंटरफ़ेस में ऐसी घटनाएं होती हैं जब उपयोगकर्ता नियंत्रण में कुछ करता है (उदाहरण के लिए, बटन पर क्लिक करें)।

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

बाकी के लिए आलेख देखें।

0

वाक्यविन्यास में कुछ महत्वपूर्ण अंतरों के लिए एक अच्छा त्वरित सामान्य संदर्भ here पाया जा सकता है। उस खंड में जाने के लिए "घटनाओं" के लिए खोजें।

मुख्य अंतर यह है कि वीबी के लिए आपको घटनाओं को वायर करने के लिए अतिरिक्त/घटाव के बजाय कुछ कीवर्ड का उपयोग करने की आवश्यकता होती है, लेकिन आपको हैंडल कीवर्ड स्वचालित रूप से किसी ईवेंट में नियमित रूप से तारित करता है। और जब एक प्रतिनिधि को पास करते हैं, तो आपको एक व्यर्थ पता पता कीवर्ड का उपयोग करना होगा। (संपादकीय के लिए खेद है, लेकिन मुझे लगता है कि कीवर्ड सहेजने से अधिक भ्रम का कारण बनता है!)

+0

आपकी टिप्पणी के लिए धन्यवाद पैट्रिक –

+0

@ एम कोई समस्या नहीं। यह था । । । एक उत्थान के लायक है? :) –

1

मुख्य अंतर सिंटैक्स का उपयोग किया जाता है। नीचे, वे सीएलआर के भीतर सटीक उसी तंत्र का उपयोग करते हैं।

हालांकि, वीबी।नेट तुम क्या करने की इजाजत दी, WithEvents और Handles के माध्यम से विशेष सिंटेक्स प्रदान करता है:

Dim WithEvents button1 As Button 

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyButton.Click 
    ' Handle button click 
End Sub 

सी # एक बराबर प्रदान नहीं करता है - सभी घटनाओं को स्पष्ट रूप से event += द्वारा की सदस्यता ली जानी चाहिए, जो अधिक VB.NET के AddHandler बयान की तरह है।

+0

आपकी मदद रीड के लिए धन्यवाद –

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