我有两个类:超类和派生的子类:超类。我有一个通用方法:
public void DoSmth<T>(T obj)
where T : Superclass
{
if(typeof(T).IsSubclassOf(typeof(Subclass))
{
DoSmth2<T>(obj);
}
//...
}
public void DoSmth2<T>(T obj)
where T : Subclass
{
//...
}
如您所见,我想从超类的泛型方法中调用子类的泛型方法。但是编译器说我不能这样做:
The type 'T' cannot be used as type parameter
'T' in the generic type or method 'DoSmth2<T>(T)'.
There is no implicit reference conversion from 'T' to 'Subclass'
我使用.Net 3.5。我知道我不能像上面写的那样做,但是有什么办法吗?