tengo un método en la clase Acómo emitir un tipo genérico para adaptarse a otro método genérico
public IList<T> MyMethod<T>() where T:AObject
Quiero invocar este método en otra clase genérica B. Esta T es sin ningún tipo de limitaciones.
public mehtodInClassB(){
if (typeof(AObject)==typeof(T))
{
//Compile error here, how can I cast the T to a AObject Type
//Get the MyMethod data
A a = new A();
a.MyMethod<T>();
}
}
Clase C se hereda de la clase AObject.
B<C> b = new B<C>();
b.mehtodInClassB()
¿Alguna idea?
Después de urs recordando ... Actualización:
Sí. Lo que realmente quiero hacer es
typeof(AObject).IsAssignableFrom(typeof(T))
no
typeof(AObject)==typeof(T))
Si pudiéramos ver más de lo que hace la otra clase, podríamos brindarle consejos más relevantes. –
¿cuál es el tipo de 'd'? si es el tipo correcto, ¿no puede simplemente invocar MyMethod sin molestarse en pasar el parámetro tipo (por ejemplo, 'd.MyMethod()')? – Chris
@Chris El método es genérico y no toma argumentos. No puede omitir el parámetro de tipo genérico en este caso porque no hay forma de inferirlo del uso. –