Comparación de tipos

17/04/2008 - 14:41 por José Luis | Informe spam
Hola a todos.

Una pregunta tonta... seguro.


Estoy cargando de una dll todas las clases que implementan una interfaz. No
tengo problemas en hacer la carga, recorrer las clases y localizar los
interfaces de las mismas; mi problema está en saber si esos interfaces son
los que yo estoy buscando, es decir:

si implemento el interface IDocumento, por ejemplo, ¿cómo hago la
comparación de tipos entre i y IDocumento?


foreach (Type i in t.GetInterfaces())
if (i ==¿IDocumento?) //?????????????????????????????????
Console.WriteLine(i.Name);


Gracias!!!!!

Preguntas similare

Leer las respuestas

#1 Juan Carlos Paramá
17/04/2008 - 15:24 | Informe spam
Hola,

Emplea el operador is:

if(i is IDocumento) {
Console.WriteLine(i.Name);
}


Saludos,

Juan Carlos Paramá

"José Luis" escribió en el mensaje de noticias
news:
Hola a todos.

Una pregunta tonta... seguro.


Estoy cargando de una dll todas las clases que implementan una interfaz.
No tengo problemas en hacer la carga, recorrer las clases y localizar los
interfaces de las mismas; mi problema está en saber si esos interfaces son
los que yo estoy buscando, es decir:

si implemento el interface IDocumento, por ejemplo, ¿cómo hago la
comparación de tipos entre i y IDocumento?


foreach (Type i in t.GetInterfaces())
if (i ==¿IDocumento?) //?????????????????????????????????
Console.WriteLine(i.Name);


Gracias!!!!!
Respuesta Responder a este mensaje
#2 Juan Diego Bueno
17/04/2008 - 15:30 | Informe spam
Hola José Luis:
El 17/04/2008, José Luis ha supuesto :
Hola a todos.

Una pregunta tonta... seguro.


Estoy cargando de una dll todas las clases que implementan una interfaz. No
tengo problemas en hacer la carga, recorrer las clases y localizar los
interfaces de las mismas; mi problema está en saber si esos interfaces son
los que yo estoy buscando, es decir:

si implemento el interface IDocumento, por ejemplo, ¿cómo hago la comparación
de tipos entre i y IDocumento?


foreach (Type i in t.GetInterfaces())
if (i ==¿IDocumento?) //?????????????????????????????????
Console.WriteLine(i.Name);



Para comparar si un objeto implementa un interface, o es de un tipo
concreto, clase y supongo que struct, tienes la palabra clave "is"

if (i is IDocumento)

Pero eso no te vale para comprobar si una clase implementa un
interface, sino un objeto a partir de esa clase.

Prueba con esto:

if (i == typeof(IDocumento))


Saludos

http://www.moondance.es
Respuesta Responder a este mensaje
#3 José Luis
17/04/2008 - 15:41 | Informe spam
"Juan Carlos Paramá" escribió en el mensaje de
noticias:
Hola,

Emplea el operador is:

if(i is IDocumento) {
Console.WriteLine(i.Name);
}




No, no puedo usar is porque i no es una instancia de un objeto, es un
tipo...

Gracias
Respuesta Responder a este mensaje
#4 José Luis
17/04/2008 - 15:42 | Informe spam
Funciona.

Gracias :)
Respuesta Responder a este mensaje
#5 Juan Carlos Paramá
17/04/2008 - 16:17 | Informe spam
Hola,

Perdón, eso me pasa por leer demasiado rápido.

Saludos,

Juan Carlos Paramá


"José Luis" escribió en el mensaje de noticias
news:


"Juan Carlos Paramá" escribió en el mensaje
de noticias:
Hola,

Emplea el operador is:

if(i is IDocumento) {
Console.WriteLine(i.Name);
}




No, no puedo usar is porque i no es una instancia de un objeto, es un
tipo...

Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida