C # में रेफ और आउट के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 2 अप्रैल 2021
डेट अपडेट करें: 5 मई 2024
Anonim
सी # में रेफरी और आउट उदाहरणों के साथ
वीडियो: सी # में रेफरी और आउट उदाहरणों के साथ

विषय


"Ref" और "Out" C # में उपयोग किए जाने वाले पैरामीटर संशोधक हैं। Ref और out का उपयोग करके, आप किसी भी विधि के संदर्भ में किसी भी प्रकार का मान पास कर सकते हैं। इसके संदर्भ द्वारा किसी भी प्रकार के मूल्य को पास करने का कारण रेफ और आउट कीवर्ड के बीच मुख्य अंतर का परिचय देता है। संदर्भ कीवर्ड, कथित पद्धति को तर्क कीवर्ड की सामग्री को उसमें बदलने की अनुमति देता है। बाहर कीवर्ड कॉल विधि को एक कॉल पर एक से अधिक मान वापस करने की अनुमति देता है। आइए एक तुलना चार्ट के साथ रेफरी और आउट के बीच के अंतर का अध्ययन करें।

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारसंदर्भबाहर
बुनियादीयह रेफरी कीवर्ड के साथ आगे बढ़े तर्क के मूल्य में परिवर्तन की अनुमति देता है।यह एक विधि को उन मूल्यों को वापस लाने की अनुमति देता है जो एक आउट कीवर्ड द्वारा पूर्ववर्ती हैं।
प्रारंभविधि कॉल से पहले रेफरी पैरामीटर को आरंभीकृत किया जाना चाहिए।समाप्त होने से पहले आउट पैरामीटर को प्रारंभिक विधि के अंदर आरंभीकृत किया जाना चाहिए।
घोषणाएक विधि द्वारा बदल दिया जाने वाला पैरामीटर रेफरी के रूप में घोषित किया जाता है, जबकि विधि घोषणा और विधि कॉलिंग।लौटाए जाने वाले पैरामीटर को विधि घोषणा और विधि कॉलिंग के दौरान रेफ के रूप में घोषित किया जाना चाहिए।


Ref Keyword की परिभाषा

"रेफ" एक पैरामीटर संशोधक है जिसका उपयोग कॉल-बाय-रेफरेंस के साथ एक विधि को कॉल करने के लिए किया जाता है। जब हम चाहते हैं कि किसी विधि के अंदर तर्कों के लिए किए गए परिवर्तन उस चर के मूल मूल्य को दर्शाते हैं, तो रेफ पैरामीटर संशोधक का उपयोग किया जाता है। मान प्रकार जिसे हम एक रेफरी के रूप में घोषित करना चाहते हैं, विधि घोषणा और विधि कॉलिंग के दौरान "रेफरी" कीवर्ड से पहले है। एक विधि को कॉल करने और घोषित करने के दौरान एक से अधिक पैरामीटर को "रेफरी" के रूप में घोषित किया जा सकता है।

सिस्टम का उपयोग कर; वर्ग DemoRef {सार्वजनिक शून्य वर्ग (ref int s) {s = s * s; }} वर्ग Ref_main {स्थिर शून्य मुख्य () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("विधि कॉल से पहले:" + a); ob.Square (रेफ एक); // प्रयुक्त रेफरी कॉनसोल कंसोल.ट्राइटलाइन ("कॉल के बाद:" + ए); }} // आउटपुट से पहले विधि कॉल: 10 एक के बाद विधि कॉल: 100

उपरोक्त कोड में, वैरिएबल 'ए' को विधि स्क्वायर (रेफरी) के तर्क के रूप में पास किया गया है, इसके साथ पैरामीटर संशोधक रेफरी संलग्न है। इसका मतलब यह है कि जो भी विधि में परिवर्तन करता है वह स्क्वायर (रेफरी) चर inside a ’के अंदर करेगा, यह of a’ के मूल मूल्य को दर्शाता है, विधि के बाहर भी।


कुछ महत्वपूर्ण बिंदु हैं जो पैरामीटर संशोधक "रेफ" के साथ काम करते समय याद रखना चाहिए।

  • एक विधि को रेफरी द्वारा पारित किए जाने वाले तर्क को विधि कॉलिंग से पहले आरंभीकृत किया जाना चाहिए।
  • विधि को रेफरी तर्क के लिए प्रारंभिक मूल्य निर्दिष्ट नहीं करना चाहिए।
  • आप संदर्भ चर के साथ रेफ का भी उपयोग कर सकते हैं।

आउट कीवर्ड की परिभाषा

हर बार जब आप कोई विधि कहते हैं, तो यह केवल एक मान लौटाएगा। यदि आप किसी कॉल पर एक से अधिक मान वापस करने के लिए कोई विधि चाहते हैं, तो "आउट" कीवर्ड का उपयोग उन मापदंडों के साथ किया जाना चाहिए जिन्हें आप विधि के समाप्त होने पर वापस लौटना चाहते हैं। कभी-कभी ऐसा होता है कि जब हम विधि के लिए कुछ भी पास नहीं करना चाहते हैं, लेकिन चाहते हैं कि हम जिस विधि का उपयोग करें, वह किसी ऐसे कीवर्ड से पैरामीटर का उपयोग करें।इसे एक उदाहरण से समझते हैं।

सिस्टम का उपयोग कर; क्लास डेमोऑट {पब्लिक इंट डेम्पोज (डबल एक्स, आउट डबल अंश) {इंट संपूर्ण_नम; full_num = (int) x; अंश = x - संपूर्ण_मान; पूरा_नम; }} वर्ग Out_maint {स्थिर शून्य मुख्य () {DemoOut ob = new DemoOut (); int i; डबल फ़्रेक; i = ob.Decompose (100.125, फ़्रेक); // इस्तेमाल किया गया कीवर्ड कंसोल। क्राइटलाइन ("संपूर्ण संख्या भाग" + i) है; Console.WriteLine ("अंश भाग" + फ़्रेक) है; }} // आउटपुट इंटेगर भाग 100 आंशिक भाग 0.125 है

उपरोक्त कोड में, विधि Decompose () द्वारा दो मान लौटाए जा रहे हैं। एक यह कीवर्ड "रिटर्न" यानी संपूर्ण_नम द्वारा लौटता है, और दूसरा यह एक पैरामीटर देता है जो आउट कीवर्ड द्वारा पूर्ववर्ती विधि है जैसे कि "फ्राक"।

आउट कीवर्ड के बारे में याद रखने के लिए महत्वपूर्ण बिंदु।

  • रेफरी कीवर्ड के विपरीत, कीवर्ड आउट का उपयोग करने वाले पैरामीटर को विधि कॉलिंग से पहले आरंभीकृत नहीं किया जाना चाहिए।
  • किसी भी कीवर्ड के साथ पैरामीटर को एक मान निर्दिष्ट किया जाएगा, क्योंकि इसे विधि के अंदर अनसाइन्ड माना जाता है, अर्थात यह माना जाता है कि इसका कोई प्रारंभिक मूल्य नहीं है।
  • विधि के समाप्त होने से पहले विधि को आउट पैरामीटर के लिए एक मान निर्दिष्ट करना चाहिए।
  • आउट कीवर्ड संदर्भ चर पर भी लागू होता है।
  1. जब रेफ कीवर्ड द्वारा पूर्ववर्ती एक चर को किसी भी विधि से पारित किया जाता है, तो विधि के अंदर इसके लिए किए गए परिवर्तन इसके मूल मूल्य को दर्शाते हैं। जब एक विधि के लिए दिया गया चर कीवर्ड से पहले होता है तो विधि रिटर्न कीवर्ड का उपयोग किए बिना उसे वापस कर देती है।
  2. रेफ पैरामीटर को एक विधि में पारित होने से पहले आरंभीकृत किया जाना चाहिए। दूसरी ओर, आउट पैरामीटर को उस विधि के अंदर आरंभीकृत किया जाना चाहिए जिसे वह पास किया गया है।
  3. किसी विधि को कॉल करने, घोषित करने या परिभाषित करने के दौरान, रेफ पैरामीटर को स्पष्ट रूप से रेफ के रूप में घोषित किया जाता है। दूसरी ओर, एक विधि को कॉल करने, घोषित करने या परिभाषित करने के दौरान, बाहर पैरामीटर स्पष्ट रूप से घोषित किया जाता है।

निष्कर्ष:

जब भी चर को एक विधि के संदर्भ में पास करना होता है, तो रेफ और आउट कीवर्ड का उपयोग किया जा सकता है। जबकि, दोनों कीवर्ड का उपयोग करने का कारण अलग-अलग है, जहां रेफरी कीवर्ड का उपयोग रेफ कीवर्ड द्वारा पूर्ववर्ती तर्क के मूल्य को बदलने के लिए किया जा सकता है, जिसे विधि में पास किया जाता है और आउट कीवर्ड का उपयोग तर्क के मान को वापस करने के लिए किया जाता है। आउट कीवर्ड द्वारा।