Anwenden des Operators == auf den generischen Parameter [duplizieren]

7

Ich habe eine DatabaseLookup {} Klasse, wo der Parameter T von den Suchmethoden in der Klasse verwendet wird. Vor dem Nachschlagen möchte ich sehen, ob T schon mit etwas wie

nachgeschlagen wurde %Vor%

Dies wird überhaupt nicht kompiliert. Was hindert mich daran, einen einfachen Vergleich zu machen?

    
Teoman Soygul 15.04.2011, 21:19
quelle

4 Antworten

16

T ist der Typparameter. Wenn Ihr previousLookupObject ein Objekt von Type ist, müssen Sie typeof(T) == previousLookupObject ausführen.

Wenn previousLookupObject eine Variable vom Typ T ist, müssen Sie ein tatsächliches Objekt von T haben, um es zu vergleichen.

Wenn Sie herausfinden möchten, ob previousLookupObject vom Typ T ist, müssen Sie den Operator is verwenden: if (previousLookupObject is T) .

    
Femaref 15.04.2011, 21:22
quelle
8

T ist Typ, previousLookupObject ist (ich vermute) eine Objektinstanz. Sie vergleichen also Äpfel mit Orangen. Versuchen Sie Folgendes:

%Vor%     
Darin Dimitrov 15.04.2011 21:22
quelle
0

Welcher Typ ist previousLookupObject ? Generische Typparameter sind Typen und können nicht als normale Objektreferenzen verwendet werden.

    
recursive 15.04.2011 21:22
quelle

Tags und Links