我有一些具有以下定义的方法;
public void SomeMethod<T>() where T : BaseClass, new()
{
InheritedClass instance = (InheritedClass)instanceOfT; //won't compile
}
为什么不允许这种演员表?你怎么能解决这个问题?我有大约 200 行代码,它们都适用于泛型,除了我需要对每个继承类(有 3 个)进行一个 LINQ 查询。我试图进行typeof
检查,然后进行强制转换,然后执行适当的查询,但编译器不会让我进行强制转换...鉴于我刚刚检查以确保它T
实际上是一个类型的InheritedClass
实例绝不会失败,为什么编译器不让我这样做?