Czy mam coś takiego:Korzystanie z metod ogólnych, czy możliwe jest odzyskanie różnych typów z tej samej metody?
int x = MyMethod<int>();
string y = MyMethod<string>();
więc jedna metoda powrocie różnych typów w oparciu o T. Oczywiście, nie byłoby logiki wewnątrz metody, aby zapewnić, że wracał poprawną rzeczą.
Nigdy nie uda mi się uruchomić czegoś takiego. twierdzi on, że nie może rzutować wartości zwracanej do T:
public static T MyMethod<T>()
{
if(typeof(T) == typeof(Int32))
{
return 0;
}
else
{
return "nothing";
}
}
F irst ze wszystkich, ten kod nie będzie się kompilował, ponieważ nie ma określonego typu zwracanego. Zakładam, że chcesz, aby przeczytał 'public static T MyMethod()' –
Nick
Dodaj to jako odpowiedź, Nick. Myślę, że to rozwiązanie, którego potrzebuje. – JMD
... chociaż ten kod, jak napisano powyżej, nadal nie będzie się kompilował, ponieważ "nic" nie jest T, chyba że T jest łańcuchem, a 0 nie jest T, chyba że T jest typem liczbowym. – JMD