我想解释一下这个问题的标题。
我有基类
public class BaseClass { /* stuff */ }
和其他两个继承的类BaseClass
public class Test1: BaseClass { ... }
public class Test2: BaseClass { ... }
好的,然后假设使用泛型类(在我的项目中它非常复杂)
public GenericClass<T> : IBase<T> where T: BaseClass, Test1, Test2
有时我只需要以BaseClass其他方式使用Test1或Test2.
我有一个功能:
public int Create ( T obj){
if( obj is Test1) { return aManager.Create((Test1)obj); } // the cast is OK
else if(obj is Test2) { return bManager.Create((Test2)obj);} // error cast
}
我也aManager.Create (Test1 obj)有bManager.Create(Test2 obj)
为什么else在行中我的演员阵容有误?
我的错误在哪里?
PS:如果我在和之间更改顺序Test1,Test2那么首先if会出现转换错误,然后else就可以了。