如何保证类在 C# 中实现特定接口

本文关键字:实现 接口 何保证 | 更新日期: 2023-09-27 18:37:02

我想创建一个依赖于另一个接口功能的接口。例如,我正在制作:

interface IHealth  {
}
interface IHealthBar {
}

附加IHealthBar的实体需要IHealth作为先决条件。如何在 C# 中声明它?


更新

继承不是这里的答案。运行状况栏依赖于来自运行状况的一条信息,而不是整个实现。 IHealth有一个健康条,IHealthBar不是健康。

如何保证类在 C# 中实现特定接口

从另一个接口派生/扩展,就像这样...

interface IHealthBar : IHealth {
}

作为旁注,您还可以在 C# 中对interfaces进行多重继承,因此,如果您只想分解接口定义,则可以创建执行以下操作的类......

public class OnlyNeedHealth : IHealth {}
public class NeedHealthAndHealthBar : IHealth, IHealthBar {}
IHealth

有一个健康条,IHealthBar不是健康。

好的,那就IHealth有一个健康条

interface IHealth  {
    IHealthBar HealthBar {get;}
}

这使得IHealth的任何实现者都有一个名为 IHealthBar 类型的属性HealthBar的公共获取器,这取决于实现者他想要如何处理 setter。

public class Monster : IHealth
{
    public Monster()
    {
        HealthBar = new MonserHealthBar();
    }
    public IHealthBar HealthBar {get; private set;}
}

使IHealthBar派生自IHealth

public interface IHealth
{
}
public interface IHealthBar : IHealth
{
}

你可以让接口相互继承:

interface IHealthBar : IHealth
{
  /// ...
}