Voglio confrontare il tipo di un oggetto con un tipo per vedere se sono uguali. Non ho l'oggetto, solo il tipo di oggetto.Come funziona l'operatore "è" internamente
posso fare type1 == type2
e ricevere parità generale
posso avere un ciclo ricorsivo dove Ripeto il passo precedente per type1.BaseType
finché la BaseType è nullo.
posso fare type1.GetInterface(type2.FullName) != null
per verificare se tipo2 è un'interfaccia di tipo 1
Se metto tutto insieme, ottengo
if (type2.IsInterface)
return type1.GetInterface(type2.FullName) != null;
while (type1 != null) {
if (type1 == type2)
return true;
type1 = type1.BaseType;
}
return false;
è che tutta la parola chiave è is
. Non riesco a trovare la parola giusta da inserire nella ricerca Reflector per trovare la funzione e una ricerca su google "è" non è stato davvero utile
Dipende da cosa il significato della parola "è" è –
+1 interessante. Tuttavia, suppongo che la parola chiave "is" sia implementata in modo nativo nel runtime e non utilizzi la reflection. – tster
Non avrei mai pensato di vedere una citazione di Bill Clinton su SO. –