c# - 列表没有空接口Interface3:Interface1,Interface2?
问题描述
我正在构建一个 UI 面板。您可以添加要在其上显示的内容,并将它们存储在列表中。
添加到它的东西需要从 IAddable 继承,因为这允许它们被添加到相机(促进游戏循环更新、渲染等的级联)。它们还需要是 IRectangular,它显示大小和位置,以便面板可以对它们进行排序和定位。
我目前有一个界面:
public interface IRectangularAddable : IAddable, IRectangular { }
所以我的面板只能添加 IRectangularAddables,并拥有一个 IRectangularAddables 列表,它驱动两组功能。
拥有一个简单地从其他两个接口继承而不添加成员的接口感觉就像代码味道,这是针对CA1040 的吗?
这是正确的方法吗?
解决方案
简短的回答
如上所述创建接口并不违反CA1040,因为您实现了 2 个或更多接口。
长答案
此外,当您实际阅读规则时,第一部分“原因”指出:
原因: 接口没有声明任何成员或实现两个或多个其他接口。
这意味着,创建一个不声明成员并且只实现一个其他接口的接口将违反 CA1040,而实现两个接口则不会。
此外,当您检查代码时,该规则实际上不应该在您的情况下触发。
推荐阅读
- php - 将依赖项隐藏在外观后面时,正确的命名约定是什么?
- typo3 - RealUrl - 语言路径段
- redirect - web.config 重定向有问题;500内部服务器错误
- php - PHP PDO 程序
- c# - 拖动时旋转和调整窗口大小
- docker - 如何将 Nunit 的结果从 Windows 容器显示到 TeamCity?
- amazon-web-services - 有哪些 AWS 服务可用于 react native?
- c# - 从不同的 AssetBundle 加载 Prefab 和 AnimationClip
- java - 使用springboot时如何创建JsonDeserializer,将null设置为JSON中等于“”的所有Java对象字段?
- java - SonarQube 未捕获未关闭的 FileInputStream