c delegate tutorial how instantiate
यह ट्यूटोरियल बताता है कि सरल कोड उदाहरणों की मदद से C C का उपयोग कैसे करें। आप C # में मल्टीकास्ट डेलिगेट्स के बारे में भी जानेंगे:
C # प्रतिनिधि क्या हैं?
C # में, प्रतिनिधि C ++ में उपलब्ध बिंदुओं के समान हैं। यह मूल रूप से एक संदर्भ प्रकार चर है जिसमें किसी अन्य विधि का संदर्भ होता है।
इसके अलावा, इसके संदर्भ को रन टाइम के दौरान नहीं बदला जा सकता है। यह System.Delegate वर्ग के अंदर उपलब्ध है। कॉल बैक फ़ंक्शन या इवेंट हैंडलर को संभालने के लिए एक प्रतिनिधि का उपयोग किया जाता है।
यह एक फ़ंक्शन के लिए एक सूचक की तरह है और फ़ंक्शन के हस्ताक्षर के बाद कीवर्ड प्रतिनिधि का उपयोग करके घोषित किया जा सकता है।
=> पूरी सी # ट्रेनिंग सीरीज़ यहां पढ़ें
प्रतिनिधि की घोषणा भी विधि को निर्धारित करती है जिसे प्रतिनिधि द्वारा संदर्भित किया जा सकता है अर्थात् यह एक संदर्भ विधि हो सकती है जिसमें प्रतिनिधि के समान हस्ताक्षर हैं।
आप क्या सीखेंगे:
C # में त्वरित प्रतिनिधि
एक बार प्रतिनिधि को घोषित कर देने के बाद, इसे नए कीवर्ड के साथ इंस्टेंट किया जा सकता है और फिर इसे विधि के साथ जोड़ना होगा। एक विधि की तरह, अभिव्यक्ति को एक तर्क पारित करने की आवश्यकता है।
एक प्रतिनिधि को आमंत्रित करना
एक प्रतिनिधि को एक विधि की तरह ही आमंत्रित किया जा सकता है।
उदाहरण:
class Program { public delegate void methodDelegate(); public static void Main(string() args) { methodDelegate md = new methodDelegate(method); md.Invoke(); } public static void method() { Console.WriteLine('Delegate pointing to method'); } }
उत्पादन
उपरोक्त कार्यक्रम का उत्पादन होगा:
विधि की ओर इशारा करते हुए प्रतिनिधि
व्याख्या
क्या vr Xbox एक के साथ काम करता है
उपरोक्त कार्यक्रम में, हमने प्रतिनिधि का एक उद्देश्य बनाया है और इसे उस पद्धति की ओर इंगित किया है जिसे हमें लागू करने की आवश्यकता है। तब हमने we डेलीगेट ’का उपयोग करते हुए विधि को लागू करने के लिए इनवोक () का उपयोग किया।
हमें C # प्रतिनिधि का उपयोग करने की आवश्यकता क्यों है?
हम अपने मुख्य विधि से सीधे विधि को बुला सकते थे लेकिन हमें वास्तव में एक प्रतिनिधि का उपयोग करने की आवश्यकता क्यों है?
सरल भाषा में प्रतिनिधि का मतलब दो समूहों के बीच संचार के लिए एक प्रतिनिधि है। यहां तक कि एक प्रोग्रामिंग संदर्भ में, इसकी एक समान भूमिका है। इसका उपयोग कॉलबैक के लिए किया जाता है।
मान लें कि हमारे पास एक लंबी चलने वाली पद्धति है और हमें लगातार प्रगति की जाँच करनी होगी। ऐसा करने के लिए हम एक प्रतिनिधि का उपयोग करके कॉलबैक का उपयोग करते हैं। इससे हम लंबे समय तक चलने वाले तरीके पर नज़र रख सकते हैं।
उदाहरण के लिए:
public class Program { One on = new One(); public static void Main(string() args) { One.generateNumbers(callDelegate); Console.ReadLine(); } public static void callDelegate(int j) { Console.WriteLine('The current random number is :' + j); } } public class One { public delegate void callingDelegate(int j); public static void generateNumbers(callingDelegate cd) { Random rn = new Random(); int i = 0; int j = 0; while (i <10) { j = rn.Next(9999); cd(j); i++; } } }
उपरोक्त कार्यक्रम का उत्पादन होगा:
उत्पादन
वर्तमान यादृच्छिक संख्या है: 1559
वर्तमान यादृच्छिक संख्या है: 6127
वर्तमान यादृच्छिक संख्या है: 6639
वर्तमान यादृच्छिक संख्या है: 3963
वर्तमान यादृच्छिक संख्या है: 4479
वर्तमान यादृच्छिक संख्या है: 6898
वर्तमान यादृच्छिक संख्या है: 1390
वर्तमान यादृच्छिक संख्या है: 6409
वर्तमान यादृच्छिक संख्या है: 2629
वर्तमान यादृच्छिक संख्या है: 5464
उपर्युक्त कार्यक्रम में, हमने 'जनरनंबर' विधि से कॉलबैक प्राप्त करने के लिए एक प्रतिनिधि का उपयोग किया जो किसी दिए गए पुनरावृत्ति के लिए एक यादृच्छिक पूर्णांक बनाता है। यह चलना बड़ा हो सकता है। इसलिए, यहां प्रतिनिधि को हर बार कॉल वापस पाने के लिए उपयोग किया जाता है जब विधि में एक यादृच्छिक पूर्णांक उत्पन्न होता है।
C # में एक मल्टीकास्ट डेलिगेट क्या है?
एक प्रतिनिधि कई अलग-अलग तरीकों को इंगित कर सकता है। एक प्रतिनिधि जो कई अलग-अलग तरीकों की ओर इशारा करता है, उसे एक मल्टीकास्ट प्रतिनिधि के रूप में जाना जाता है। प्रतिनिधि के लिए एक फ़ंक्शन जोड़ने के लिए '+' चिह्न (ऑपरेटर) का उपयोग किया जाता है और प्रतिनिधि से जुड़े किसी भी मौजूदा फ़ंक्शन को निकालने के लिए '- साइन' (ऑपरेटर) का उपयोग किया जाता है।
एक मल्टीकास्ट प्रतिनिधि उस फ़ंक्शन को कॉल करता है जिसे इसे इंगित किया जाता है और केवल एक ही प्रकार के फ़ंक्शन को मल्टी-कास्ट प्रतिनिधि बनाने के लिए जोड़ा जा सकता है। इसका उपयोग उन विधियों की सूची बनाने के लिए किया जा सकता है, जिन्हें किसी एकल प्रतिनिधि को बुलाकर आमंत्रित करने की आवश्यकता होती है।
आइए इसे समझने के लिए एक सरल कार्यक्रम पर एक नज़र डालें:
कार्यक्रम
public class Program { delegate void IntegerCounter(int n); public static void method_A(int a) { a = a + 5; Console.WriteLine('the value of first method {0}', a); } public static void method_B(int b) { b = b * 5; Console.WriteLine('the value of second method {0}', b); } public static void Main(string() args) { //creating instance of the delegate IntegerCounter x; IntegerCounter y = new IntegerCounter(method_A); IntegerCounter z = new IntegerCounter(method_B); x = y; x += z; x(10); Console.ReadLine(); } }
उत्पादन
सेल फोन के लिए सबसे अच्छा जासूस डिवाइस
पहली विधि 5 का मान
दूसरी विधि का मान 50
उपर्युक्त कार्यक्रम में, हमने एक प्रतिनिधि इंटेगरकाउन्टर घोषित किया। फिर हमने दो अलग-अलग तरीके बनाए जो पूर्णांक मान पर एक निश्चित ऑपरेशन कर रहे हैं। फिर मुख्य विधि में, हमने दोनों परिभाषित तरीकों के लिए प्रतिनिधि को शुरू किया।
फिर हमने पहले प्रतिनिधि प्रतिनिधि का उपयोग पहले प्रारंभिक प्रतिनिधि विधि को इंगित करने के लिए किया और उसके बाद, हमने '+' चिह्न का उपयोग प्रतिनिधि को बहुस्त्र्पीय करने और दूसरी विधि की ओर इंगित करने के लिए किया। फिर अगर हम एक पूर्णांक पैरामीटर पास करते हैं, तो दोनों विधियाँ एक ही पैरामीटर प्राप्त करेंगी और निष्पादित होंगी।
निष्कर्ष
एक प्रतिनिधि एक फ़ंक्शन के लिए एक संकेतक है। प्रतिनिधि के उपयोग के लिए जो विधि है, उसमें एक ही पैरामीटर और वापसी प्रकार होना चाहिए।
प्रतिनिधि को एक समारोह के समान घोषित किया जा सकता है और इसे समान रूप से लागू किया जा सकता है। एक मल्टीकास्ट प्रतिनिधि तब होता है जब हम प्रतिनिधि को कई तरीकों की ओर इंगित करते हैं और मल्टीकास्ट का उपयोग करने के लिए प्लस '+' ऑपरेटर का उपयोग किया जाता है।
=> यहाँ सी # प्रशिक्षण ट्यूटोरियल की पूरी श्रृंखला का अन्वेषण करें
अनुशंसित पाठ
- लॉग (लॉग 4 जे ट्यूटोरियल) के साथ सेलेनियम लिपियों को डीबग करना - सेलेनियम ट्यूटोरियल # 26
- कुशल सेलेनियम स्क्रिप्टिंग और समस्या निवारण परिदृश्य - सेलेनियम ट्यूटोरियल # 27
- हमारी पहली वेबड्राइवर स्क्रिप्ट का कार्यान्वयन - सेलेनियम वेबड्राइवर ट्यूटोरियल # 10
- वेबड्राइवर संपूर्ण सेटअप और स्थापना ग्रहण के साथ - सेलेनियम ट्यूटोरियल # 9
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- जेनरिक और टेस्टीयूइट्स बनाना - सेलेनियम ट्यूटोरियल # 22
- SoapUI Groovy लिपियों में अपवाद को कैसे हैंडल करें - SoapUI Tutorial # 11
- अद्यतन कैसे करें TestLink टेस्ट केस निष्पादन स्थिति दूर सेलेनियम के माध्यम से - ट्यूटोरियल # 3