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

C# में मेथड ओवरलोडिंग के विभिन्न तरीके

C# में मेथड ओवरलोडिंग (Method Overloading)

मेथड ओवरलोडिंग एक ही नाम के कई मेथड्स को एक ही क्लास में परिभाषित करने की अनुमति देता है, बशर्ते उनके पैरामीटर लिस्ट अलग हों (संख्या, प्रकार, या क्रम)। रिटर्न टाइप अकेले ओवरलोडिंग के लिए पर्याप्त नहीं है।

ओवरलोडिंग के दो मुख्य तरीके

1. पैरामीटर्स के डेटा टाइप अलग हों

public void Print(int i) {
    Console.WriteLine($"Integer: {i}");
}

public void Print(double d) {
    Console.WriteLine($"Double: {d}");
}

public void Print(string s) {
    Console.WriteLine($"String: {s}");
}

2. पैरामीटर्स की संख्या अलग हो

// 2 पैरामीटर्स
public static int Multiply(int a, int b) {
    return a * b;
}

// 3 पैरामीटर्स
public static int Multiply(int a, int b, int c) {
    return a * b * c;
}

// 4 पैरामीटर्स
public static int Multiply(int a, int b, int c, int d) {
    return a * b * c * d;
}

पूर्ण उदाहरण

using System;

public class Calculator {
    // टाइप-बेस्ड ओवरलोडिंग
    public void Display(int value) => Console.WriteLine($"Int: {value}");
    public void Display(double value) => Console.WriteLine($"Double: {value}");
    public void Display(string value) => Console.WriteLine($"String: {value}");

    // पैरामीटर-काउंट ओवरलोडिंग
    public int Add(int a, int b) => a + b;
    public int Add(int a, int b, int c) => a + b + c;
    public int Add(int a, int b, int c, int d) => a + b + c + d;
}

class Program {
    static void Main() {
        Calculator calc = new Calculator();
        
        calc.Display(42);
        calc.Display(3.14);
        calc.Display("Hello");
        
        Console.WriteLine(calc.Add(10, 20));
        Console.WriteLine(calc.Add(10, 20, 30));
        Console.WriteLine(calc.Add(10, 20, 30, 40));
    }
}

आउटपुट

Int: 42
Double: 3.14
String: Hello
30
60
100

अतिरिक्त ओवरलोडिंग नियम

  • पैरामीटर क्रम: void Foo(int a, string b) और void Foo(string a, int b) अलग हैं।
  • ref/out/modifiers: void M(ref int x) और void M(out int x) ओवरलोड माने जाते हैं (लेकिन void M(int x) के साथ नहीं)।
  • पैरामीटर नाम: केवल नाम बदलना (void M(int x) vs void M(int y)) ओवरलोडिंग नहीं है।
  • रिटर्न टाइप: केवल रिटर्न टाइप अलग होने से ओवरलोडिंग नहीं होती।
  • जेनेरिक्स: void M<T>(T x) और void M(int x) ओवरलोड हो सकते हैं।

बेस्ट प्रैक्टिस

  • संबंधित ऑपरेशन्स के लिए एक ही नाम उपयोग करें (पठनीयता)।
  • डिफ़ॉल्ट पैरामीटर वैल्यूज (C# 4+) का उपयोग करके ओवरलोड्स कम करें: void M(int a, int b = 0)
  • params कीवर्ड के साथ सावधान रहें; यह ओवरलोड रिज़ॉल्यूशन को प्रभावित कर सकता है।
  1. C प्रोग्रामिंग में फंक्शन्स की श्रेणियां C प्रोग्रामिंग में फंक्शन्स की श्रेणियां

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

  1. C# सीखने के लिए पूर्वापेक्षाएँ (Prerequisites) C# सीखने के लिए पूर्वापेक्षाएँ (Prerequisites)

    परिचय C# सीखना शुरू करने से पहले निम्नलिखित तैयारियाँ सहायक होती हैं। आवश्यक ज्ञान कंप्यूटर बेसिक्स: फ़ाइल सिस्टम, कमांड लाइन, टेक्स्ट एडिटर। प्रोग्रामिंग मूलभूत: वेरिएबल, लूप, कंडीशन, फंक्शन, ऑब्जेक्ट-ओरिएंटेड अवधारणाएं (क्लास, ऑब्जेक्ट, इनहेरिटेंस, पॉलीमॉर्फिज्म)। C या C++ अनुभव (वैकल्पिक लेकिन

  1. - जावा 9 में इंटरफेस में प्राइवेट मेथड के नियम क्या हैं?

    जावा 9 ने इंटरफेस में प्राइवेट मेथड की नई सुविधा जोड़ी। प्राइवेट मेथड को प्राइवेट मॉडिफायर का उपयोग करके परिभाषित किया जा सकता है। हम जावा 9 से इंटरफेस में प्राइवेट और प्राइवेट स्टेटिक मेथड दोनों जोड़ सकते हैं। इंटरफेस में प्राइवेट मेथड के नियम: एक प्राइवेट मेथड का इंटरफेस में बॉडी होता है मतलब हम