C# Member Overloading

Introduction to C# Member Overloading

Polymorphism एक object oriented programming feature है। Polymorphism का अर्थ “एक नाम कई काम” होता है। Polymorphism static और dynamic दो प्रकार का होता है।

Polymorphism आपको एक ही नाम के द्वारा अलग अलग situations में अलग अलग codes को execute करने की ability provide करता है। यानी की आप किसी member की एक ही नाम से कई forms define करते है जो अलग अलग situations में execute होती है।

Static polymorphism में यह compile time पर decide कर लिया जाता है की किस situation में कौनसी form execute होगी। दूसरी तरफ dynamic polymorphism में यह decision run time पर लिया जाता है।

Polymorphism का उपयोग end user को simple और effective application provide करने के लिए किया जाता है। User एक single interface के द्वारा ही आपके program की multiple functionalities को use कर पाता है।

उदाहरण के लिए कैसा हो यदि आप integer numbers को add या subtract करने के लिए अलग calculator का उपयोग करें और floating point numbers को add या subtract करने के लिए भी अलग calculator का प्रयोग करें। लेकिन ऐसा नहीं होता है आप एक ही calculator द्वारा अलग अलग तरह के numbers को add और subtract करते है।

इसी प्रकार आप अपने program में polymorphism implement करके एक ही interface द्वारा कई अलग अलग functionalities को implement करते है। ऐसा करके आप user को एक single interface provide कर पाते है जो situation के अनुसार अलग अलग तरह के codes को execute कर सकता है।

C# programs में polymorphism members को overload करके implement किया जाता है। इसे member overloading भी कहा जाता है। Member overloading में आप एक ही नाम के कई members define करते है। ऐसे members का नाम same होता है लेकिन इनका signature और इनकी functionality एक दूसरे से अलग होती है।

C# में निचे दिए जा रहे members को overload किया जा सकता है।

  • Methods
  • Constructors
  • Indexed Properties

ऊपर दिए गए सभी members parameters का उपयोग करते है इसलिए इन्हें overload किया जा सकता है। Members को overload करते समय members के signature का अहम् role होता है।

किसी member का signature उसके parameters की सँख्या, नाम और types के द्वारा बनता है। यह अनिवार्य होता है की overload किये जा रहे सभी members का signature अलग अलग हो।

किसी member की कौनसी form execute होगी यह उसमें pass किये गए arguments द्वारा ही compiler निश्चित करता है। यदि overload किये जा रहे सभी members का signature same होगा तो compiler decide नहीं कर पायेगा की कौनसी form execute करनी है।

Guidelines for C# Method Overloading

सभी member overloading’s में से method overloading सबसे अधिक popular है। Method overloading करते समय आप एक ही नाम के कई methods define करते है जिनके signatures अलग अलग होते है।

यदि methods के संदर्भ में देखा जाए तो method का return type उसके signature का part नहीं होता है। इसलिए methods का return type same हो सकता है। लेकिन method के parameters की सँख्या, नाम और type same नहीं होने चाहिए।

Methods को overload करते समय आप या तो parameters की सँख्या के आधार पर उन्हें differentiate कर सकते है या parameters के types के आधार पर उन्हें differentiate कर सकते है। आप जो भी करें लेकिन methods का signature same नहीं होना चाहिए।

Example of C# Method Overloading

C# में method overloading implement करना निचे उदाहरण द्वारा समझाया जा रहा है।

using System;

class myAdditionClass
{
      public int Add(int a, int b)
      {
           return a+b;
      }

      public double Add(double a, double b)
      {
           return a+b;
      }
}

class myFinalClass
{
    static void Main(String[] args)
    {
          myAdditionClass obj = new myAdditionClass();
          Console.WriteLine(“Sum of 2 and 3 is : {0}”,obj.Add(2,3));
          Console.WriteLine(“Sum of 2.1 and 3.5 is : {0}”,obj.Add(2.1,3.5));
    }
}

ऊपर दिया गया उदाहरण निचे दिया गया output generate करता है।

Sum of 2 and 3 is : 5
Sum of 2.1 and 3.5 is : 5.6