我正在构建一个UI面板。您可以添加要显示的内容,并将其存储在列表中。
添加到它的东西需要从IAddable继承,因为这允许将它们添加到摄像机(方便级联的游戏循环更新,渲染等)。它们还必须是矩形的,以显示大小和位置,以便面板可以对它们进行排序和定位。
我目前有一个界面:
public interface IRectangularAddable : IAddable, IRectangular { }
因此,我的面板只能添加IRectangularAddables,并包含一个IRectangularAddables列表,它们可驱动这两组功能。
拥有一个仅从其他两个继承而无需添加成员的接口,感觉像是代码的味道,这是针对CA1040的吗?
这是正确的方法吗?
答案 0 :(得分:1)
简短答案
如上所述创建接口并不反对CA1040,因为您实现了2个或更多接口。
好答案
此外,当您实际阅读规则时,第一部分“原因”指出:
原因: 该接口不声明任何成员或实现两个或多个其他接口。
这意味着,使一个不声明成员且仅实现另一个接口的接口会违反CA1040,而实现两个接口则不会。
此外,当您检查代码时,该规则实际上不应在您的情况下触发。