List <接口1和接口2>,没有空接口Interface3:Interface1,Interface2?

时间:2020-04-04 14:41:36

标签: c# interface

我正在构建一个UI面板。您可以添加要显示的内容,并将其存储在列表中。

添加到它的东西需要从IAddable继承,因为这允许将它们添加到摄像机(方便级联的游戏循环更新,渲染等)。它们还必须是矩形的,以显示大小和位置,以便面板可以对它们进行排序和定位。

我目前有一个界面:

public interface IRectangularAddable : IAddable, IRectangular { }

因此,我的面板只能添加IRectangularAddables,并包含一个IRectangularAddables列表,它们可驱动这两组功能。

拥有一个仅从其他两个继承而无需添加成员的接口,感觉像是代码的味道,这是针对CA1040的吗?

这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

简短答案

如上所述创建接口并不反对CA1040,因为您实现了2个或更多接口。

好答案

此外,当您实际阅读规则时,第一部分“原因”指出:

原因: 该接口不声明任何成员或实现两个或多个其他接口。

这意味着,使一个不声明成员且仅实现另一个接口的接口会违反CA1040,而实现两个接口则不会。

此外,当您检查代码时,该规则实际上不应在您的情况下触发。