没有空接口Interface3:Interface1,Interface2?,c#,interface"/>

首页 > 解决方案 > 列表没有空接口Interface3:Interface1,Interface2?

问题描述

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

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

我目前有一个界面:

public interface IRectangularAddable : IAddable, IRectangular { }

所以我的面板只能添加 IRectangularAddables,并拥有一个 IRectangularAddables 列表,它驱动两组功能。

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

这是正确的方法吗?

标签: c#interface

解决方案


简短的回答

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

长答案

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

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

这意味着,创建一个不声明成员并且只实现一个其他接口的接口将违反 CA1040,而实现两个接口则不会。

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


推荐阅读