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
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?