Я хочу понять, что это двусмысленность или дополнительная функция, которая предоставляется:
public class Foo
{
public int Bar(){
//code
}
public string Bar(int a){
//code
}
}
Любой, имеющий какой-либо опыт с этим, перегрузка по типу возврата с разными параметрами должна быть плохой практикой, не так ли?
Но если перегрузка была выполнена на основе типа возврата, то почему это не работает.
public class Foo
{
public int Bar(int a){
//code
}
public string Bar(int a){
//code
}
}
Поскольку он не сможет решить, какую функцию вызывать 1 или 2, если мы назовем obj.Bar();, это должно закончиться ошибкой, если у кого-нибудь есть представление об этом, почему он позволяет запускать первый фрагмент кода.