Caveats
If a method is designed with an excessive number of overloads, it may be difficult for developers to discern which overload is being called simply by reading the code. This is particularly true if some of the overloaded parameters are of types that are inherited types of other possible parameters (for example "object"). An IDE perform the overload resolution and display (or navigate to) the correct overload.
Read more about this topic: Function Overloading