我有下一节课:
public class EntityBase<T>
{
public T Id { get; set; }
}
它的实施者:
public class ClassA : EntityBase<Int32>
{
...
}
public class ClassB : EntityBase<Int64>
{
...
}
ClassA
在代码中,它不知道类 -ClassB
它只知道 EntityBase<...> 的存在,我做了这样的事情:
// Here for sure I get the list of `ClassA`
object obj = GetSomeHowListOfClassA();
List<EntityBase<Int32>> listOfEntityBases = (List<EntityBase<Int32>>)obj;
我得到了错误:
Unable to cast object of type 'System.Collections.Generic.List`1[...ClassA]' to type 'System.Collections.Generic.List`1[...EntityBase`1[System.Int32]]'.
我这样修复它:
var listOfEntityBases = new List<EntityBase<Int32>>(obj);
但我不喜欢这种方式,因为我正在创建新的 List<>。有没有办法投呢?感谢任何预付款。