Typ des Typparameters finden [duplizieren]

7

Betrachten Sie Folgendes:

%Vor%

Wie überprüfe ich, um welchen Typ es sich handelt?

Ich dachte an:

%Vor%

Gibt es einen besseren Weg?

    
Theofanis Pantelides 01.03.2010, 12:51
quelle

4 Antworten

16

Es gibt die Funktion typeof(T) ?

    
Unsliced 01.03.2010, 12:53
quelle
5

Sie können die Funktion typeof(T) ?

verwenden

Um nach der Zeichenkette zu suchen, machen Sie

if(typeof(T) == typeof(string)) // etwas tun

    
Marco Spatz 01.03.2010 12:59
quelle
5

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.

    
Konrad Rudolph 01.03.2010 13:00
quelle
2

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.

    
Kerem Kusmezer 01.03.2010 15:50
quelle

Tags und Links