Zwracanie wartość różnych typów

0

Witam,
czy w C# jest możliwość aby metoda zwracał różne typy, tak jak to się odbywa w PHP ? Chodzi o to że w zależności od przebiegu metody może zwracać String, DataRow, DataTable.

0

Możesz zwracać object - wtedy metoda może zwrócić cokolwiek.

//ale nie polecam takiego rozwiązania

0

Z jakiego powodu nie polecasz ?

Myślałem o przeciążaniu w taki sensie:

public DataTable query(string query, DataTable val);
public DataRow query(string query, DataRow val);
public String query(string query, String val);

string s = query("ZAPYTANIE", new String());

Ale nie do końca mi to pasuje bo muszę zawsze ten drugi parametr definiować...

0

Bo zwracając object zawsze musisz wiedzieć co zostało zwrócone, albo poleci Ci wyjątek przy błędnym rzutowaniu w dół.

1

Już lepiej:

public T query<T>(string query);
0

Niestety, PHP ma słabą typizację, natomiast C# ma silną i nie za bardzo da się to pogodzić ;)

1
emfałsi napisał(a)

Niestety, PHP ma słabą typizację, natomiast C# ma silną i nie za bardzo da się to pogodzić ;)

Właśnie po to wymyślono programowanie generyczne i należy z niego korzystać.

1

Jeszcze ktoś ma wątpliwości, że Programmable Hyperlinked Pasta krzywdzi?

1 użytkowników online, w tym zalogowanych: 0, gości: 1