Method Overloading with different type return [duplicate]
To pytanie ma już odpowiedź tutaj:
Przeciążenie funkcji według typu zwrotu? 14 odpowiedziChcę 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.