我有一種在如何投泛型類型,以適應另一個泛型方法
public IList<T> MyMethod<T>() where T:AObject
類我想調用另一個泛型類B.這件T是不受任何約束這種方法。
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>();
}
}
C類繼承自Class AObject。
B<C> b = new B<C>();
b.mehtodInClassB()
有什麼想法?
後URS提醒...更新:
是。我真正想要做的是
typeof(AObject).IsAssignableFrom(typeof(T))
不
typeof(AObject)==typeof(T))
如果我們能看到更多的其他類做什麼,我們也許能夠提供更多的相關諮詢。 –
'd'的類型是什麼?如果它是正確的類型,你可以不直接調用MyMethod而不需要傳入類型參數(例如'd.MyMethod()')? – Chris
@Chris該方法是通用的,不需要參數。在這種情況下,您不能省略泛型類型參數,因爲無法從使用中推斷泛型類型參數。 –