Are there really any significant advantages to overload methods?
Let’s consider the following example:
class SillyMath
{
public static int Plus(int number1, int number2)
{
return Plus(number1, number2, 0);
}
public static int Plus(int number1, int number2, int number3)
{
return Plus(number1, number2, number3, 0);
}
public static int Plus(int number1, int number2, int number3, int number4)
{
return number1 + number2 + number3 + number4;
}
}
Wouldn’t it be easier to just use parameters with default values?
public static int Plus(int number1, int number2, int number3 = 0, int number4 = 0)
{
return number1 + number2 + number3 + number4;
}
1. So can anyone tell me why would I bother considering overloads when programming?
2. And what if I need to throw in some conditional statements? Would overloading still be relevant?
EDIT: Also, meanwhile I learned that overloads can also have different return types. In my opinion that is something that makes overloads worthy of consideration.
One reason might be to make what appears to be a single method that takes a variety of different inputs. For example,
BinaryWriter.Writehaving the following overloads (and a couple others):Allowing you to write code like: