Understanding Method Overloading and Signatures In Hindi
C# प्रोग्रामिंग लैंग्वेज में मेथड ओवरलोडिंग एक इम्पोर्टेन्ट फंक्शन मेथड कांसेप्ट है, जो C# प्रोग्रामर को एक ही नाम से किसी फंक्शन प्रोग्राम में लेकिन इंडिविजुअल सैपरेट वेरिएबल पैरामीटर लिस्ट के साथ मल्टीप्ल यूजर डिफाइन क्लास मेथड डिफाइन या क्रिएट करने में हेल्प करता है। C# प्रोग्राम में मेथड ओवरलोडिंग एक ही क्लास मेथड के नाम को मल्टीप्ल इंडिविजुअल तरह के क्लास इनपुट या अलग-अलग नंबर्स ऑफ़ यूजर डिफाइन प्रोग्राम वेरिएबल पैरामीटर को हैंडल या मैनेज करने की परमिशन प्रोवाइड कर एक मेथड के साथ फंक्शन क्रिएट करने में हेल्प करता है।

So, let’s explore the multiple parameter variable function method overloading concept in C# programming.
What is a method signature in C# programming?
किसी C# प्रोग्राम में मेथड सिग्नेचर का अर्थ है की यूजर डिफाइन क्लास प्रोग्राम में डिक्लेअर मल्टीप्ल कॉम्बिनेशन ऑफ़ पैरामीटर वेरिएबल जिसमे यूजर डिफाइन
क्लास मेथड का नाम मल्टीप्ल इंडिविजुअल डिक्लेअर क्लास वेरिएबल पैरामीटर डाटा टाइप जिसमे क्लास पैरामीटर की संख्या, डिक्लेअर पैरामीटर डाटा टाइप और उनका डिक्लेरेशन सीक्वेंस या ऑर्डर शामिल होता है.
किसी प्रोग्राम में प्रोग्राम मेथड का रिटर्न डाटा टाइप और क्लास पैरामीटर नाम मेथड सिग्नेचर का हिस्सा नहीं होते हैं।
Example of a method signature in a C# program.
public int Total (int p, int q) { } // यहाँ क्लास प्रोग्राम में एक “Total” नाम से एक मेथड डिफाइन या डिक्लेअर की गई है, जिसमे ईंट डाटा टाइप मेथड “(int p, int q)” वेरिएबल पैरामीटर लिस्ट है, जो एक मेथड सिग्नेचर को इंडीकेट करता है।
याद रहे, C# प्रोग्राम में डिक्लेअर एक क्लास मेथड सिग्नेचर क्लास के अंदर यूनिक और सेपरेट होना चाहिए। आप किसी C# प्रोग्राम में एक ही नाम और एक जैसे प्रोग्राम वेरिएबल पैरामीटर डाटा टाइप के साथ दो सामान नाम क्लास मेथड डिक्लेअर नहीं कर सकते है।
Method Overloading in C# Programming.
C# प्रोग्राम में मेथड ओवरलोडिंग कांसेप्ट C# प्रोग्रामर को एक ही नाम से लेकिन सेपरेट इंडिविजुअल मल्टीप्ल क्लास वेरिएबल पैरामीटर लिस्ट के साथ मल्टीप्ल न्यू क्लास मेथड क्रिएट करने की परमिशन प्रोवाइड करता है। इसका अर्थ है कि एक ही क्लास प्रोग्राम में डिक्लेअर मेथड में नीचे दिए गए तरीकों में से किसी एक में मामले अलग होने चाहिए।
element of Method Overloading.
- किसी क्लास में डिक्लेअर वेरिएबल पैरामीटर्स के नंबर्स जैसे, एक डिक्लेअर मेथड एक पैरामीटर वैल्यू होल्ड करता है, इसी प्रकार दूसरा मेथड दो पैरामीटर वैल्यू को होल्ड करता है।
- क्लास में डिक्लेअर वेरिएबल पैरामीटर्स का डाटा टाइप जैसे, क्लास प्रोग्राम में डिक्लेअर एक मेथड int डाटा टाइप वैल्यू को डील करता है, जबकि दूसरा पैरामीटर स्ट्रिंग वैल्यू को होल्ड या डील करता है।
- क्लास में डिक्लेअर वेरिएबल पैरामीटर्स का सीक्वेंस या ऑर्डर जैसे, एक डिक्लेअर क्लास मेथड int डाटा टाइप, और दूसरा पैरामीटर स्ट्रिंग वैल्यू को डील करता है, और दूसरा डाटा टाइप स्ट्रिंग और int वैल्यू को डील करता है।
- याद रहे, क्लास प्रोग्राम में डिक्लेअर डिफाइन फंक्शन ओवरलोडेड मेथड के सिग्नेचर यूनिक और इंडिविजुअल होने चाहिए।
Example of method overloading in a C# program.
C# प्रोग्राम क्लास मेथड में डिक्लेअर वेरिएबल पैरामीटर्स की नंबर्स के अनुसार ओवरलोडिंग कांसेप्ट का यूज़ करना।
using System;
class NumOfParameterOverlod
{
static void Main()
{
Console.WriteLine(total(2, 9)); // here it Calls total class method (int, int) with 2 integer data type value
Console.WriteLine(total(7, 4, 9, 3)); // here it Calls total(int, int, int, int) class method parameter with 4 different int data type value
}
// here we declare a class Method with 2 int data type parameters
static int total(int p, int q)
{
return p + q;
}
// here we Overloaded class method with 4 different integer parameters data type
static int total(int p, int q, int r, int s)
{
return p + q + r + s;
}
}
Explaining method overloading.
- यहाँ इस प्रोगाम में दोनों क्लास मेथड का नाम टोटल डिफाइन किया गया है, लेकिन यहाँ 4 वेरिएबल पैरामीटर वाले डिक्लेअर क्लास मेथड को एक अलग मेथड के रूप में ट्रीट किया जाता है. जिसमे मौजूदा प्रोग्राम में डिक्लेअर वेरिएबल पैरामीटर की अलग संख्या के कारण, इसीलिए यह एक अलग मेथड के साथ प्रोग्राम सोर्स कोड का काम करता है।
Overloading example based on parameter type.
using System;
class OverloadedParameter
{
static void Main()
{
Console.WriteLine(Total(6, 9)); // here it Calls Total(int, int) 2 integer data type parameter value
Console.WriteLine(Total(2.9, 7.7, 3.8)); // here it Calls Total(double, double, double) 3 double data type parameter value
}
// here we decalre class Method with 2 integer data type parameters
static int Total(int p, int q)
{
return p + q;
}
// here we use class Overloaded method with 3 double data type parameters
static double Total(double p, double q, double r)
{
return p + q + r;
}
}
Explaining Overloading based on parameter type.
- यहाँ इस प्रग्राम में दो अलग अलग क्लास मेथड डिफाइन है, जिसमे फर्स्ट मेथड Total(int, int) मेथड इंटीजर्स वैल्यू डाटा टाइप को हैंडल करता है, इसी प्रकार Total(double, double, double) क्लास मेथड डबल्स डाटा टाइप को हैंडल करता है। यहाँ कंपाइलर पास किए गए क्लास मेथड आर्गुमेंट्स वैल्यू के डाटा टाइप के आधार पर मल्टीप्ल मेथड्स में डिफ्रेंस क्रिएट कर सकता है।
Example of method overloading based on parameter order in a C# program.
using System;
class ParameterOverloaded
{
static void Main()
{
Console.WriteLine(Group(“Vcanhelpsu”, 207)); // here it Calls Group(string, int) class method with 2 different data type
Console.WriteLine(Group(1, “C# Programming”)); // here it Calls Group(int, string) 2 class method with int and string data type
}
// here we declare 2 data type class Method with string and int variable parameters
static string Group(string p, int q)
{
return p + q;
}
// here we Overloaded class method with 2 int and string data type parameters
static string Group(int p, string q)
{
return p + ” | ” + q;
}
}
Explaining method overloading based on parameter order.
- यहाँ इस प्रोग्राम में Group यूजर डिफाइन मेथड दो इंडिविजुअल क्लास वेरिएबल पैरामीटर ऑर्डर को मैनेज या हैंडल करने के लिए ओवरलोडेड है। यहाँ इस कंडीशन में, यह एक (string, int) स्ट्रिंग और ईंट डाटा टाइप को मैनेज करता है, वही दूसरे केस में, यह (int, string) ईंट और स्ट्रिंग डाटा टाइप को मैनेज या कण्ट्रोल करता है।
Rules for method overloading in C# programming.
यदि आप C# प्रोग्राम में मेथड ओवरलोडिंग कांसेप्ट को अप्लाई करना चाहते है, तो आपको ये कुछ रूल्स एंड रेगुलेशन को फॉलो करना होगा।
- Class method name – C# प्रोग्राम में ओवरलोड किए गए क्लास मेथड का नाम एक जैसा ही होना चाहिए।
- Different parameter list – मौजूदा C# प्रोग्राम में सिमिलर विथ डिफरेंट वेरिएबल पैरामीटर वैल्यू क्लास मेथड में कम से कम इनमें से एक बात अलग होनी चाहिए। जैसे।
- क्लास में नंबर्स ऑफ़ पैरामीटर।
- मल्टीप्ल डिक्लेअर वेरिएबल पैरामीटर का डाटा टाइप।
- क्लास में डिक्लेअर वेरिएबल पैरामीटर का सीक्वेंस या ऑर्डर।
- Method return type – मौजूदा प्रोग्राम में डिक्लेअर क्लास मेथड का रिटर्न डाटा टाइप किसी भी यूजर डिफाइन क्लास मेथड सिग्नेचर को यूनिक नहीं बनाता है। इस वजह से आप सिर्फ़ रिटर्न क्लास डाटा टाइप को मॉडिफाई कर मेथड क्लास को ओवरलोड नहीं कर सकते है।
यहाँ आपको नीचे एक क्लास मेथड एक्साम्प्ल दिया गया प्रोग्राम सोर्स कोड कम्पाइल नहीं होगा। क्योंकि इस प्रोग्राम में यूजर डिक्लेअर क्लास मेथड सिग्नेचर एक जैसे डिफाइन हैं.
public int Total(int p, int q) { return p + q; }
public double Total(int a, int q) { return a + q; } // यह एक एरर मैसेज को डिस्प्ले करता है, क्योकि यहाँ क्लास सेम सिग्नेचर, रिटर्न टाइप इनफार्मेशन युक्त है.
Overloading with Default Parameters in C#
C# प्रोग्राम में प्रोग्रामर डिफ़ॉल्ट क्लास डिक्लेअर वेरिएबल पैरामीटर वैल्यू का यूज़ करके किसी भी क्लास मेथड को ओवरलोड कर सकते हैं। इस प्रोसेस में क्लास मेथड को बिना क्लियर आर्डर में ओवरलोड किए इंडिविजुअल नंबर्स पैरामीटर को हैंडल करने का एक बिहैवियर मिलता है।
Example of a method with default parameters in a C# program.
using System;
class DefaultParameterMethod
{
static void Main()
{
Console.WriteLine(Total(2, 7)); // here it Calls Total(int, int) class method with 2 integer data type value
Console.WriteLine(Total(4, 7, 4)); // here it Calls Total(int, int, int) class method with 3 integer data type value
Console.WriteLine(Total(11)); // here it Calls Total(int, int) with a default parameter for second class parameter value
}
// here we define class Method with default parameter variable value
static int Total(int p, int q = 0)
{
return p + q;
}
// here we Overloaded class method with 3 variable parameters value
static int Total(int p, int q, int r)
{
return p + q + r;
}
}
Explaining Overloading with Default Parameters.
यहाँ इस प्रोग्राम में क्लास मेथड Total(int p, int q = 0) में वेरिएबल पैरामीटर q के लिए डिफ़ॉल्ट वैल्यू 0 डिफाइन की गई है। यदि यहाँ मेथड कॉलर q वैल्यू के लिए कोई वैल्यू पास नहीं करता है, तो यह डिफ़ॉल्ट रूप से 0 वैल्यू पर आ जाएगा। जिससे मौजूदा क्लास मेथड में ऐसे कॉल होगा। जैसे उस मेथड में सिर्फ़ एक ही आर्गुमेंट हो, जो क्लास में ओवरलोडिंग जैसा है।
C# Method Overloading vs. Method Overriding Concepts.
- C# प्रोग्रामिंग में मेथड ओवरलोडिंग और मेथड ओवरराइडिंग कांसेप्ट दोनों में आपको फ़र्क जानना बहुत ज़रूरी है.
- C# में मेथड ओवरलोडिंग बिहैवियर एक यूजर डिफाइन क्लास के अंदर डिफाइन होती है, जहाँ C# यूजर एक ही नाम से कई क्लास मेथड को डिफ़ाइन या क्रिएट करते हैं. लेकिन उन सिमिलर क्लास के सिग्नेचर इंडिविजुअल या सेपेरेट होने चाहिए।
- C# प्रोग्राम में मेथड ओवरराइडिंग का यूज़ इनहेरिटेंस में बेस क्लास में पहले से डिफ़ाइन किए गए क्लास मेथड का नया इम्प्लीमेंटेशन प्रोवाइड करने में किया जाता है. यहाँ आप वर्चुअल कीवर्ड और ओवरराइड मॉडिफ़ायर का यूज़ करके इसे कर सकते है।
A Summary of Understanding Method Overloading and Signatures.
- C# प्रोग्रामिंग लैंग्वेज में मेथड ओवरलोडिंग इसके यूजर को एक ही नाम से कई क्लास मेथड डिफ़ाइन या क्रिएट करने की सुविधा देता है. लेकिन इसमें डिफाइन क्लास मेथड वेरिएबल पैरामीटर की लिस्ट अलग-अलग होनी चाहिए हैं. जैसे, पैरामीटर नंबर, डाटा टाइप, या डिक्लेअर पैरामीटर का ऑर्डर या सीक्वेंस, आदि।
- C# प्रोग्राम में मेथड सिग्नेचर में क्लास मेथड का नाम और उसके नंबर ऑफ़ डिक्लेअर पैरामीटर लिस्ट जैसे डाटा टाइप, नंबर ऑफ़ पैरामीटर, और उनका डिक्लेअर सीक्वेंस या ऑर्डर होती है।
- C# प्रोग्राम में मेथड ओवरलोडिंग सिर्फ़ यूजर डिक्लेअर वेरिएबल या पैरामीटर लिस्ट पर आधारित होती है, किसी भी प्रकार के रिटर्न डाटा टाइप नेचर पर नहीं।
- C# प्रोग्राम में डिफ़ॉल्ट क्लास पैरामीटर, यहाँ मल्टीप्ल क्लास मेथड को अलग-अलग नंबर के वेरिएबल पैरामीटर को हैंडल या मैनेज करने की परमिशन प्रोवाइड कर मेथड ओवरलोडिंग जैसी फ़ंक्शनैलिटी प्रोवाइड कर सकते हैं।
