Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# 7.0 में लोकल फंक्शन्स क्या हैं?

लोकल फंक्शन्स एक प्रकार के प्राइवेट मेथड होते हैं जो किसी अन्य सदस्य (मेथड, कंस्ट्रक्टर, प्रॉपर्टी आदि) के अंदर नेस्टेड होते हैं। उन्हें केवल उनके कंटेनिंग मेंबर से कॉल किया जा सकता है।

लोकल फंक्शन्स कहाँ डिक्लेयर किए जा सकते हैं?

  • मेथड्स (विशेष रूप से इटरेटर और async मेथड्स)
  • कंस्ट्रक्टर्स
  • प्रॉपर्टी एक्सेसर्स
  • इवेंट एक्सेसर्स
  • अनाम मेथड्स
  • लैम्ब्डा एक्सप्रेशन्स
  • फाइनलाइज़र्स
  • अन्य लोकल फंक्शन्स

उदाहरण 1: बेसिक लोकल फंक्शन

class Program {
    public static void Main() {
        // लोकल फंक्शन डिक्लेरेशन
        void AddTwoNumbers(int a, int b) {
            System.Console.WriteLine(a + b);
        }
        
        // कॉल
        AddTwoNumbers(1, 2);  // आउटपुट: 3
        Console.ReadLine();
    }
}

उदाहरण 2: आउट पैरामीटर के साथ

class Program {
    public static void Main() {
        void AddTwoNumbers(int a, int b, out int c) {
            c = a + b;
        }
        
        AddTwoNumbers(1, 2, out int c);  // इंलाइन आउट वेरिएबल (C# 7.0)
        System.Console.WriteLine(c);  // आउटपुट: 3
        Console.ReadLine();
    }
}

उदाहरण 3: इटरेटर मेथड में लोकल फंक्शन

public IEnumerable<int> GetNumbers() {
    // वैलिडेशन लोकल फंक्शन में
    void Validate() {
        if (someCondition) throw new ArgumentException();
    }
    
    Validate();
    
    // इटरेटर लॉजिक
    for (int i = 0; i < 10; i++) {
        yield return i;
    }
}

उदाहरण 4: Async मेथड में लोकल फंक्शन

public async Task<string> DownloadDataAsync(string url) {
    async Task<string> DownloadWithRetry(string u, int retries) {
        for (int i = 0; i < retries; i++) {
            try {
                return await httpClient.GetStringAsync(u);
            }
            catch when (i < retries - 1) {
                await Task.Delay(1000);
            }
        }
        throw new Exception("Failed after retries");
    }
    
    return await DownloadWithRetry(url, 3);
}

लोकल फंक्शन्स vs लैम्ब्डा एक्सप्रेशन्स

विशेषतालोकल फंक्शनलैम्ब्डा
नामहाँ (रीडेबिलिटी)नहीं (अनाम)
रिकर्सनआसान (नाम से कॉल)मुश्किल (डेलिगेट आवश्यक)
पैरामीटर्सref/out/params समर्थनसीमित
पेरफॉरमेंसकोई डेलिगेट आवंटन नहींडेलिगेट आवंटन
स्कोपकेवल कंटेनिंग मेंबरकहीं भी पास किया जा सकता है

लाभ

  • कैप्सुलेशन: हेल्पर लॉजिक छिपाता है
  • पेरफॉरमेंस: डेलिगेट आवंटन से बचाता है
  • रीडेबिलिटी: नामित, संरचित कोड
  • रिकर्सन: स्वाभाविक रूप से समर्थित
  1. जावास्क्रिप्ट में पार्शियल फंक्शन्स क्या हैं? जावास्क्रिप्ट में पार्शियल फंक्शन्स क्या हैं?

    पार्शियल फंक्शन्स एक फंक्शन को आर्गुमेंट के रूप में लेते हैं और साथ ही अन्य टाइप्स के आर्गुमेंट्स भी लेते हैं। यह पास किए गए कुछ आर्गुमेंट्स का उपयोग करता है और एक फंक्शन लौटाता है जो शेष आर्गुमेंट्स लेगा। जब लौटाया गया फंक्शन इनवोक किया जाता है, तो यह पैरेंट फंक्शन को मूल और अपने स्वयं के आर्गुमें

  1. - C भाषा में पूर्वनिर्धारित (लाइब्रेरी) फंक्शन्स क्या हैं?

    फंक्शन्स मोटे तौर पर दो प्रकार के होते हैं: पूर्वनिर्धारित (लाइब्रेरी) फंक्शन्स उपयोगकर्ता-परिभाषित फंक्शन्स पूर्वनिर्धारित (लाइब्रेरी) फंक्शन्स ये फंक्शन्स सिस्टम लाइब्रेरीज में पहले से परिभाषित होते हैं। प्रोग्रामर सिस्टम लाइब्रेरीज में मौजूद कोड का पुनर्उपयोग करके त्रुटि-मुक्त कोड लिखते हैं।

  1. C प्रोग्रामिंग में फंक्शन्स की श्रेणियां C प्रोग्रामिंग में फंक्शन्स की श्रेणियां

    फंक्शन्स के चार वर्ग आर्गुमेंट्स और रिटर्न वैल्यू के आधार पर: बिना आर्गुमेंट्स, बिना रिटर्न वैल्यू बिना आर्गुमेंट्स, रिटर्न वैल्यू के साथ आर्गुमेंट्स के साथ, बिना रिटर्न वैल्यू आर्गुमेंट्स के साथ, रिटर्न वैल्यू के साथ 1. बिना आर्गुमेंट्स, बिना रिटर्न फंक्शन न इनपुट लेता है न आउटपुट देता है। void