C # में, एक फ़ंक्शन पैकेजिंग कोड का एक तरीका है जो कुछ करता है और फिर मान लौटाता है। सी के विपरीत, सी ++ और कुछ अन्य भाषाएं, कार्य स्वयं से मौजूद नहीं हैं। वे एक का हिस्सा हैं वस्तु के उन्मुख प्रोग्रामिंग के लिए दृष्टिकोण।
स्प्रेडशीट का प्रबंधन करने के लिए एक कार्यक्रम उदाहरण के लिए, एक वस्तु के हिस्से के रूप में एक राशि () फ़ंक्शन शामिल कर सकता है।
C # में, एक फ़ंक्शन को एक सदस्य फ़ंक्शन कहा जा सकता है - यह एक वर्ग का सदस्य है- लेकिन यह शब्दावली C ++ से बचा हुआ है। इसके लिए सामान्य नाम एक विधि है।
उदाहरण विधि
दो प्रकार की विधियाँ हैं: उदाहरण विधि और स्थैतिक विधि। यह परिचय आवृत्ति विधि को कवर करता है।
नीचे दिया गया उदाहरण एक साधारण वर्ग को परिभाषित करता है और कहता है परीक्षा. यह उदाहरण एक साधारण कंसोल प्रोग्राम है, इसलिए इसे अनुमति दी गई है। आमतौर पर, C # फ़ाइल में परिभाषित प्रथम श्रेणी फॉर्म क्लास होनी चाहिए।
इस तरह एक खाली वर्ग होना संभव है कक्षा टेस्ट {}, लेकिन यह उपयोगी नहीं है। हालाँकि यह खाली दिखता है, लेकिन यह सभी C # वर्गों की तरह है- इसमें उस ऑब्जेक्ट से विरासत में मिला है जिसमें यह शामिल है और इसमें एक डिफ़ॉल्ट भी शामिल है निर्माता मुख्य कार्यक्रम में।
var t = नया परीक्षण ();
यह कोड काम करता है, लेकिन एक उदाहरण बनाने के अलावा जब यह चलता है तो यह कुछ भी नहीं करेगा टी खाली परीक्षा वर्ग की। नीचे दिया गया कोड एक फ़ंक्शन, एक विधि जोड़ता है जो शब्द "हैलो।"
सिस्टम का उपयोग;
नामस्थान funcex1
{
क्लास टेस्ट
{
सार्वजनिक शून्य SayHello ()
{
कंसोल। लिक्लाइन ("हैलो");
}
}
कक्षा कार्यक्रम
{
स्थिर शून्य मुख्य (स्ट्रिंग [] args)
{
var t = नया परीक्षण ();
टी। नमस्ते कहो() ;
कंसोल। कुंजी पढ़ें() ;
}
}
}
इस कोड उदाहरण में शामिल हैं कंसोल। कुंजी पढ़ें(), इसलिए जब यह चलता है, तो यह कंसोल विंडो प्रदर्शित करता है और कुंजी प्रविष्टि जैसे कि Enter, Space या Return (शिफ्ट, Alt या Ctrl कुंजियाँ नहीं) का इंतजार करता है। इसके बिना, यह कंसोल विंडो को खोलेगा, आउटपुट "हैलो" और फिर सभी पलक झपकते ही बंद कर देगा।
कार्यक्रम नमस्ते कहो आपके पास जितना सरल कार्य हो सकता है। यह एक सार्वजनिक फ़ंक्शन है, जिसका अर्थ है कि फ़ंक्शन कक्षा के बाहर से दिखाई देता है।
यदि आप शब्द को हटा दें जनता और करने के लिए प्रयास करें संकलन कोड, यह एक संकलन त्रुटि "funcex1.test के साथ विफल रहता है। SayHello () 'इसकी सुरक्षा के स्तर के कारण दुर्गम है। "यदि आप" निजी "शब्द जोड़ते हैं जहां सार्वजनिक शब्द था और फिर से लिखना, तो आपको एक ही संकलन त्रुटि मिलती है। बस इसे "सार्वजनिक" में बदल दें।
शब्द शून्य फ़ंक्शन में इसका मतलब है कि फ़ंक्शन किसी भी मान को वापस नहीं करता है।
विशिष्ट प्रकार्य परिभाषा परिभाषाएँ
- पहुंच का स्तर: सार्वजनिक, निजी और कुछ अन्य
- वापसी मूल्य>: शून्य या किसी भी प्रकार जैसे कि इंट
- विधि का नाम: SayHello
- किसी भी विधि पैरामीटर: अब के लिए कोई नहीं। इन्हें विधि नाम के बाद कोष्ठक () में परिभाषित किया गया है
अन्य फ़ंक्शन, MyAge () की परिभाषा के लिए कोड है:
सार्वजनिक int MyAge ()
{
वापसी 53;
}
के बाद सही जोड़ें नमस्ते कहो() पहले उदाहरण में विधि और पहले इन दो पंक्तियों को जोड़ें कंसोल। कुंजी पढ़ें().
var आयु = t। मेरी उम्र();
कंसोल। लिकलाइन ("डेविड {0} साल पुराना है", आयु);
अब इस कार्यक्रम को चलाने वाले इसे आउटपुट करते हैं:
नमस्कार
डेविड 53 साल का है,
var आयु = t। मेरी उम्र(); विधि के लिए कॉल 53 मान लौटाया। यह सबसे उपयोगी कार्य नहीं है। एक अधिक उपयोगी उदाहरण एक सरणी के साथ स्प्रेडशीट सम फ़ंक्शन है ints, प्रारंभ सूचकांक और योग करने के लिए मूल्यों की संख्या।
यह समारोह है:
सार्वजनिक फ्लोट सम (int [] मान, int startindex, int endindex)
{
var कुल = 0;
for (var index = startindex; सूचकांक <= ENDINDEX; सूचकांक ++)
{
कुल + = मान [सूचकांक];
}
कुल वापसी;
}
यहां तीन उपयोग के मामले हैं। यह Main () में जोड़ने और सम फ़ंक्शन को टेस्ट करने के लिए कॉल करने के लिए कोड है।
var मान = नया int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
कंसोल। लिक्लाइन (t) सम (मान, 0,2)); // 6 होना चाहिए
कंसोल। लिक्लाइन (t) सम (मान, 0,9)); // 55 होना चाहिए
कंसोल। लिक्लाइन (t) सम (मान, 9,9)); // 10 होना चाहिए क्योंकि 9 वां मूल्य 10 है
के लिए पाश शुरू करने के लिए सीमा startindex में मान जोड़ता है, इसलिए startindex = 0 और endindex = 2 के लिए, यह 1 + 2 + 3 = 6 का योग है। जबकि 9,9 के लिए, यह सिर्फ एक मान जोड़ता है [9] = 10।
फ़ंक्शन के भीतर, स्थानीय वैरिएबल कुल को 0 से प्रारंभ किया जाता है और फिर इसमें सरणी मानों के संबंधित भाग जोड़े जाते हैं।