Betrachten Sie Folgendes:
%Vor%Wie überprüfe ich, um welchen Typ es sich handelt?
Ich dachte an:
%Vor%Gibt es einen besseren Weg?
Sie können die Funktion typeof(T)
?
Um nach der Zeichenkette zu suchen, machen Sie
if(typeof(T) == typeof(string))
// etwas tun
Dies ist mit ziemlicher Sicherheit ein Fehler im Design Ihrer Funktion, wenn Sie den Typ des generischen Typparameters ermitteln müssen; Dies ist gegenüber von "generic". Verwenden Sie stattdessen stattdessen das Überladen.
Ansonsten hat Unsliced bereits die richtige Antwort gegeben, um den Typ von T
zu bestimmen.
Es gibt tatsächlich 2 Methoden, die das tun, wenn die erwarteten Klassen von derselben Klasse oder Schnittstelle oder abstrakten Klasse abstammen, die Sie einfach in der generischen Signatur durchführen können
T GetValue () wobei T: class, dies zwingt ganze T-Typen, Referenztypen zu sein. Oder T GetValue () wobei T: IDisposable, dies wird ganze T-Typen zur Implementierung von IDisposable zwingen.
für Ihren Fall typeof (T) wird Ihre Probleme lösen, aber in diesem Fall machen Sie die Methode nicht generisch.