In Ihrem gegebenen Beispiel sind Sie wahrscheinlich besser bedient, wenn Sie Folgendes tun:
%Vor%Um jedoch Ihre Frage zu beantworten - ja, die Antwort ist die Verwendung von Generika:
%Vor% Bei dieser Methode ist T ein -Typ-Parameter . Sie können T in Ihrem Code genauso verwenden wie jeden anderen Typ (zum Beispiel eine Zeichenkette). Beachten Sie jedoch, dass wir in diesem Fall keine Einschränkung für T festgelegt haben, sondern nur für Objekte vom Typ T Habe die Eigenschaften und Methoden der Basis object
( GetType()
, ToString()
etc ...)
Wir müssen natürlich erklären, was T ist, bevor wir es benutzen können - zum Beispiel:
%Vor%Weitere Informationen finden Sie in der MSDN-Dokumentation zu Generics
Sie können die Methode wie folgt definieren:
%Vor%Alternativ können Sie, wenn Sie nicht garantieren können, dass TReturnType ein Referenztyp ist, die generische Integritätsregel (TReturnType: class) verlassen und den Standardwert (TReturnType) anstelle von null zurückgeben - dies würde den Standardtyp von TReturnType zurückgeben, der 0 wäre für einen int ...
Wenn Sie den Typ zum Zeitpunkt der Kompilierung kennen (wenn Sie den Code schreiben), können Sie Generika verwenden.
Wenn Sie den Typ nur zur Laufzeit (über Type) kennen, können Sie den Activator
Ich denke, dass Sie tatsächlich nach einem Convert.ChangeType-Mechanismus suchen.
%Vor%Tags und Links c#