Method Overloading with different type return [duplicate]

To pytanie ma już odpowiedź tutaj:

Przeciążenie funkcji według typu zwrotu? 14 odpowiedzi

Chcę zagłębić się w to, czy jest to dwuznaczność, czy dodatkowa funkcja, która jest dostępna:

 public class Foo 
 { 
    public int Bar(){
       //code
    }

    public string Bar(int a){
       //code
    }
 }

Każdy, kto ma z tym jakieś doświadczenie, przeciążenie typu zwrotu różnymi parametrami powinien być złą praktyką, prawda?

Ale jeśli przeciążenie zostało wykonane na podstawie typu zwracanego, dlaczego to nie działa.

 public class Foo 
 { 
    public int Bar(int a){
       //code
    }

    public string Bar(int a){
       //code
    }
 }

Ponieważ nie będzie można zdecydować, która funkcja ma być wywoływana jako pierwsza lub druga, jeśli wywołamy obiekt obj.Bar (); , powinien zakończyć się błędem, jeśli ktokolwiek ma pojęcie o tym, dlaczego pozwala na uruchomienie pierwszego fragmentu kodu.

questionAnswers(9)

yourAnswerToTheQuestion