Je me demandais si quelqu'un pouvait me dire si ce genre de comportement est possible en C# 4.0C# .NET 4.0 et Generics
J'ai une hiérarchie d'objets que je voudrais garder fortement typé. Quelque chose comme ça
class ItemBase {}
class ItemType<T> where T : ItemBase
{
T Base { get; set; }
}
class EquipmentBase : ItemBase {}
class EquipmentType : ItemType<EquipmentBase> {}
Ce que je veux être en mesure de faire pour avoir quelque chose comme ça
ItemType item = new EquipmentType();
Et je veux item.Base pour revenir ItemBase type. Fondamentalement, je veux savoir s'il est assez intelligent pour générique fortement typé à une classe de base sans le typage fort. Avantage de cet être, je peux simplement renvoyer un ItemType à un EquipmentType et obtenir à nouveau toute la typicité.
je penserai à tout faux ...
Cela ne fonctionnera pas non plus dans C# 4 à cause des 2 raisons que j'ai notées dans ma réponse. Mais même si ItemType était à la place IItemType , le fait qu'il ait besoin de T comme paramètre in et out exclut effectivement l'utilisation souhaitée. –
Josh