This article is currently in the process of being translated into Afrikaans (~99% done).
Functions
एक फ़ंक्शन आपको कोड का एक टुकड़ा एनकैप्सुलेट करने और अपने कोड के अन्य हिस्सों से कॉल करने की अनुमति देता है। आप बहुत जल्द ऐसी स्थिति में जा सकते हैं, जहाँ आपको कई जगहों से कोड का एक टुकड़ा दोहराने की आवश्यकता होती है, और यह वह है जहाँ फ़ंक्शन का उपयोग किया जाता है। C # में, उन्हें मूल रूप से इस तरह घोषित किया जाता है:
<visibility> <return type> <name>(<parameters>)
{
<function code>
}
किसी फ़ंक्शन को कॉल करने के लिए, आप बस उसका नाम, एक ओपन कोष्ठक ( ( ), फिर पैरामीटर, यदि कोई हो, और फिर एक समापन कोष्ठक ( ) ), इस तरह से लिखते हैं:
DoStuff();
यहाँ हमारे DoStuff () फ़ंक्शन का एक उदाहरण है:
public void DoStuff()
{
Console.WriteLine("I'm doing something...");
}
पहला भाग, सार्वजनिक (public), दृश्यता है, और वैकल्पिक है। यदि आप किसी को परिभाषित नहीं करते हैं, तो फ़ंक्शन निजी (private) होगा। उस बारे में बाद में। अगला लौटने का प्रकार (return type) है। यह C # में कोई भी मान्य प्रकार हो सकता है, या जैसा कि हमने यहां किया है, void । एक void का मतलब है कि यह फ़ंक्शन बिल्कुल कुछ भी नहीं लौटाता है। साथ ही, यह फ़ंक्शन कोई पैरामीटर नहीं लेता है, जैसा कि आप कोष्ठक के खाली सेट ( ) से देख सकते हैं, इसलिए यह वास्तव में थोड़ा सा बोरिंग है। आइए इसे बदलते हैं:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
हमने लगभग सब कुछ बदल दिया है। फ़ंक्शन अब एक पूर्णांक ( integer) देता है, इसमें दो पैरामीटर (दोनों पूर्णांक ( two integers)) होते हैं, और कुछ आउटपुट करने के बजाय, यह एक गणना करता है और फिर परिणाम देता है। इसका मतलब है कि हम अपने कोड में विभिन्न स्थानों से दो नंबर जोड़ सकते हैं, बस इस फ़ंक्शन को हर बार गणना कोड लिखने के बजाय कॉल करके । हालांकि हम इस छोटे से उदाहरण में उतना समय और प्रयास नहीं बचाते हैं, लेकिन जितना आप C # का उपयोग करेंगे आप फ़ंक्शंस से उतना प्यार करना सीखेंगे। इस फ़ंक्शन को इस तरह बुलाया (function call) जाता है:
int result = AddNumbers(10, 5);
Console.WriteLine(result);
जैसा कि उल्लेख किया गया है, यह फ़ंक्शन वास्तव में कुछ देता है, और इसे करना है, क्योंकि हमने C# को बताया कि इसे ऐसा करना ह है। शून्य प्रकार (void type) के अलावा किसी और type की घोषणा (declaration) करते समय, हम अपने आप को कुछ वापस करने के लिए मजबूर कर रहे हैं। आप ऊपर दिए गए उदाहरण से रिटर्न लाइन हटाने की कोशिश कर सकते हैं, और कंपाइलर शिकायत (error) देख सकते हैं:
'AddNumbers (int, int)': सभी कोड पाथ मान (value) नहीं लौटाते हैं
कंपाइलर हमें याद दिला रहा है कि हमारे पास एक फ़ंक्शन है जो कुछ वापस नहीं करता है, हालांकि हमने वादा किया था। और कंपाइलर बहुत चालाक है! लाइन हटाने के बजाय, कुछ इस तरह आज़माएँ:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
}
आपको ठीक वही त्रुटि दिखाई देगी - लेकिन क्यों? क्योंकि इस बात की कोई गारंटी नहीं है कि यदि हमारा स्टेटमेंट सही होगा और रिटर्न लाइन निष्पादित की जाएगी। अंत में आप रिटर्न स्टेटमेंट की तरह एक दूसरा, डिफ़ॉल्ट रूप से इसे हल कर सकते हैं:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
return 0;
}
यह हमारे द्वारा बनाई गई समस्या को ठीक करेगा, और यह आपको यह भी दिखाएगा कि हम अपने फ़ंक्शन में एक से अधिक रिटर्न स्टेटमेंट दे सकते हैं। जैसे ही रिटर्न स्टेटमेंट पहुंचता है, फ़ंक्शन छोड़ दिया जाता है और इसमें कोई अधिक कोड निष्पादित नहीं होता है। इस मामले में, इसका मतलब है कि जब तक परिणाम 10 से अधिक है, "रिटर्न 0" कभी नहीं पहुंचता है।
This article has been deprecated!
This article has been re-organized and updated to better match the rest of the tutorial.
We suggest that you read this article instead: Methods (functions)