Method overloading is an example for compile time polymorphism. Method overloading is ability to have more than one function of same name in the same scope. In other word, we can have two or more methods with the same name but different signatures.In case of method overloading, compiler identifies which overloaded method to execute based on number of arguments and their data types during compilation. So it's required to achieve method overloading, Each method signature must be unique within the type. Members can have the same name as long as their parameter lists differ.
There is one more thing to note that changing the return type of a method does not make the method unique.
Now question is why we use method Overloading.
So the answer is it's used or recommended when multiple methods have the same purpose, but there is more than one way to start it.
We can achive method overloading by the three way :-
1. Number of parameters
2. Type of parameters.
3. Order of parameters.
Let's start with a couple of really simple code for above :-
class Program
{
static void Main(string[] args)
{
Overloading obj = new Overloading();
int r1 = obj.DoSomeThing(2);
int r2 = obj.DoSomeThing(2, 4);
string r3 = obj.DoSomeThing(2, "str");
string r4 = obj.DoSomeThing("str", 4);
Console.WriteLine("r1={0}, r2={1}, r3={2}, r4={3}",r1,r2,r3,r4);
Console.Read();
}
}
public class Overloading
{
public int DoSomeThing(int x) // Method with One parameters
{
return x;
}
public int DoSomeThing(int x, int y) // Method with Same Name(No of parameters is Differ)
{
return x + y;
}
//
public string DoSomeThing(int x, string y) // Method with Same Name(Type of parameters is Differ)
{
return x.ToString() + y;
}
public string DoSomeThing(string x, int y) // Method with Same Name(Order of parameters is Differ)
{
return x + y.ToString();
}
}
Here, I define DoSomeThing method in four different ways. The first one takes one parameter while the second method takes two integer type parameters having different number of parameters. In the third one, there is two parameters but have different type of parameter and fourth one have a different order of parameters. Then I called all four overload method by their suited parameters Lists.
Thanks for reading.
;