мне было интересно, если кто-нибудь может сказать мне, если такое поведение возможно в C# 4.0C# .NET 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 и снова получить всю жесткость.
я могу думать об этом все неправильно ...
Это не сработает ни на C# 4 из-за двух причин, которые я заметил в своем ответе. Но даже если ItemType был вместо IItemType , тот факт, что ему нужен T как параметр in и out, эффективно исключает нужное использование. –
Josh