I\'ve been playing a little with generics and delegates and I have found something I don\'t understand. I have quite similar generic static methods, one accepts Action
Methods can be overloaded by their arguments and all overloads form one method group, so for example void Xyz(int i)
and void Xyz(string s)
are within same method group called Xyz
. Compiler is not able to deduct a type of argument even if user defines only one method, because behaviour of compiler is quite strict.
Methods can't be overloaded by return types, so you can't have int Xyz()
and string Xyz()
within same class. Return type can be deducted by compiler easily, because there is no overloading.
It was not obvious for me for the first time, but it has been quite clear after I realized that I could create an overload.