我想知道在C# 4.0中是否可能出现这种行为。
我有一个对象层次结构,我想保持强类型。类似于这样:
class ItemBase {}
class ItemType<T> where T : ItemBase
{
T Base { get; set; }
}
class EquipmentBase : ItemBase {}
class EquipmentType : ItemType<EquipmentBase> {}
我希望能够像这样实现以下功能:
ItemType item = new EquipmentType();
我希望item.Base返回类型为ItemBase。基本上,我想知道它是否足够聪明地将强类型泛型转换为基类而不需要强类型。这样做的好处是,我可以简单地将ItemType转换回EquipmentType,并再次获得所有强类型。
也许我的想法有误...