Quiero comparar el tipo de un objeto con un tipo para ver si son los mismos. No tengo el objeto, solo el tipo del objeto.¿Cómo funciona el operador "es" internamente
que puedo hacer type1 == type2
y obtener la igualdad en general
puedo tener un bucle recursivo donde repito el paso anterior para type1.BaseType
hasta que el BaseType es nulo.
que puedo hacer type1.GetInterface(type2.FullName) != null
para comprobar si tipo2 es una interfaz de tipo 1
Si lo pongo todo junto, me sale
if (type2.IsInterface)
return type1.GetInterface(type2.FullName) != null;
while (type1 != null) {
if (type1 == type2)
return true;
type1 = type1.BaseType;
}
return false;
es que toda la palabra clave es is
. No puedo encontrar la palabra clave correcta para tapar en la búsqueda del reflector para encontrar la función y una búsqueda en Google sobre "es" no era realmente útil
Depende de lo que 'es' el significado de la palabra es –
1 interesante. Sin embargo, supongo que la palabra clave "es" se implementa de forma nativa en el tiempo de ejecución y no utiliza la reflexión. – tster
Nunca pensé que vería una cita relevante de Bill Clinton en SO. –