我想制作一个依赖于另一个接口功能的接口。例如,我正在制作:
interface IHealth {
}
interface IHealthBar {
}
附加的实体IHealthBar
将需要一个IHealth
作为先决条件。我如何在 C# 中声明它?
更新
继承不是这里的答案。健康栏依赖于来自健康的一条信息,而不是整个实现。IHealth
有一个健康栏,IHealthBar
不是一个健康。
从另一个接口派生/扩展,就像这样......
interface IHealthBar : IHealth {
}
作为旁注,您还可以在 C# 中进行多重继承interfaces
,因此,如果您只想分解接口定义,您可以创建执行类似...的类的类。
public class OnlyNeedHealth : IHealth {}
public class NeedHealthAndHealthBar : IHealth, IHealthBar {}
IHealth 有一个健康栏,IHealthBar 不是一个健康。
好的,那就做IHealth
一个健康吧
interface IHealth {
IHealthBar HealthBar {get;}
}
这使得任何实现者IHealth
都拥有一个名为HealthBar
type的属性的公共 getter IHealthBar
,这取决于实现者如何处理 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
{
/// ...
}