我在建一个UI面板。您可以添加要在其上显示的内容,并将其存储在列表中。
添加到它的东西需要从IAddable继承,因为这样可以将它们添加到摄像机中(方便游戏循环更新、呈现等等)。它们还需要是IRectangular,它公开大小和位置,这样面板就可以对它们进行排序和定位。
我目前有一个接口:
public interface IRectangularAddable : IAddable, IRectangular { }因此,我的面板只能添加IRectangularAddables,并包含驱动这两组功能的IRectangularAddables列表。
拥有一个简单地从另外两个接口继承而不添加成员的接口感觉就像一种代码气味,这是针对CA1040的吗
这样做对吗?
发布于 2020-04-04 16:07:53
短答案
如上所述,创建接口并不违背CA1040,因为您实现了2个或更多接口。
长答案
此外,当您实际阅读该规则时,第一节“原因”指出:
原因:接口不声明任何成员或实现两个或多个其他接口。
这意味着,创建一个不声明成员且只实现另一个接口的接口将违反CA1040,而实现两个接口则不会。
另外,当您让代码被检查时,在您的情况下,这个规则实际上不应该触发。
https://stackoverflow.com/questions/61029760
复制相似问题