C# स्थैतिक बहुरूपता को लागू करने के लिए दो तकनीकें प्रदान करता है -
- फंक्शन ओवरलोडिंग
- ऑपरेटर ओवरलोडिंग
फंक्शन ओवरलोडिंग
समान नाम वाली दो या दो से अधिक विधियाँ लेकिन अलग-अलग पैरामीटर जिन्हें हम C# में फंक्शन ओवरलोडिंग कहते हैं।
C# में फ़ंक्शन ओवरलोडिंग तर्कों की संख्या और डेटा प्रकार के तर्कों को बदलकर किया जा सकता है।
मान लें कि आपके पास एक फ़ंक्शन है जो संख्याओं के गुणन को प्रिंट करता है, तो हमारे अतिभारित तरीकों का एक ही नाम होगा लेकिन विभिन्न संख्या में तर्क होंगे -
public static int mulDisplay(int one, int two) { } public static int mulDisplay(int one, int two, int three) { } public static int mulDisplay(int one, int two, int three, int four) { }
निम्नलिखित एक उदाहरण है जो दिखाता है कि फ़ंक्शन ओवरलोडिंग को कैसे कार्यान्वित किया जाए -
उदाहरण
using System; public class Demo { public static int mulDisplay(int one, int two) { return one * two; } public static int mulDisplay(int one, int two, int three) { return one * two * three; } public static int mulDisplay(int one, int two, int three, int four) { return one * two * three * four; } } public class Program { public static void Main() { Console.WriteLine("Multiplication of two numbers: "+Demo.mulDisplay(10, 15)); Console.WriteLine("Multiplication of three numbers: "+Demo.mulDisplay(8, 13, 20)); Console.WriteLine("Multiplication of four numbers: "+Demo.mulDisplay(3, 7, 10, 7)); } }
आउटपुट
Multiplication of two numbers: 150 Multiplication of three numbers: 2080 Multiplication of four numbers: 1470
ऑपरेटर ओवरलोडिंग
ओवरलोडेड ऑपरेटर विशेष नाम वाले फ़ंक्शन होते हैं, कीवर्ड ऑपरेटर के बाद ऑपरेटर के लिए प्रतीक परिभाषित किया जाता है।
निम्नलिखित दिखाता है कि कौन से ऑपरेटरों को ओवरलोड किया जा सकता है और जिन्हें आप ओवरलोड नहीं कर सकते -
Sr.No | संचालक और विवरण |
---|---|
1 | +, -,!, ~, ++, -- ये यूनरी ऑपरेटर एक ऑपरेंड लेते हैं और इन्हें ओवरलोड किया जा सकता है। |
2 | +, -, *, /, % ये बाइनरी ऑपरेटर एक ऑपरेंड लेते हैं और इन्हें ओवरलोड किया जा सकता है। |
3 | ==, !=, <,>, <=,>= तुलना ऑपरेटरों को अतिभारित किया जा सकता है। |
4 | &&, || सशर्त तार्किक ऑपरेटरों को सीधे ओवरलोड नहीं किया जा सकता है। |
5 | +=, -=, *=, /=, %= असाइनमेंट ऑपरेटरों को ओवरलोड नहीं किया जा सकता है। |
6 | =, ., ?:, -<, new, is, sizeof, typeof इन ऑपरेटरों को ओवरलोड नहीं किया जा सकता |