我有一个IHasInventory接口,它告诉继承它的类得到了一个清单。
我还得到了一个IHasExtendedInventory --告诉我,继承它的人有一个具有更多特性的ExtendedInventory。
我希望具有IHasExtendedInventory的类具有与基本IHasInventory相同的功能。
如果一个类继承了IHasSomeExtendedInventory,那么它需要两个名为Inventory和ExtendedInventory的属性。如何设计这样一个系统?是否有可能有进入库存,或我需要重命名的属性之一,以使其工作?
interface IHasInventory
{
Inventory Inventory{get;}
}
interface IHasSomeExtendedInventory : IHasInventory
{
ExtendedInventory Inventory{get;}
}
class Inventory
{
}
class ExtendedInventory : Inventory
{
}编辑:
到目前为止,我的解决方案如下所示,但我希望能有一些更干净的东西
interface IHasSomeExtendedInventory : IHasInventory
{
public ExtendedInventory ExtendedInventory => Inventory as ExtendedInventory;
}发布于 2022-11-12 13:39:27
如果我正确理解了你的问题,你就可以用这样的方法:
interface IHasInventory<T>
where T : Inventory
{
T Inventory { get; }
}
interface IHasSomeExtendedInventory : IHasInventory<ExtendedInventory>
{
}https://stackoverflow.com/questions/74412997
复制相似问题