我似乎找不到这个问题的答案,只是想确保它是一个正常的编码标准.我有接口A,它被许多不同的类使用,我不希望接口A改变.我遇到了一个新的需求,需要实现接口A的许多类都需要一个枚举,但不是所有的类都需要这个枚举.我不希望不需要这个新枚举的类实现这个新功能.所以我创建了接口B,其中包含我需要添加的新枚举.然后我让接口B继承接口A,这是我关心的问题,一个接口继承另一个接口可以吗?为了继续我的更改,我随后更改了需要新enum来实现接口B而不是接口A的类,因为它是由接口B继承的.我曾考虑在需要它们的类中实现这两个接口,但我在整个代码中都使用了这个接口,我只想使用一个接口来查看类,而不是两个.

我希望这足够清楚(可能太长),但如果有人能给我一些建议,要么我做对了,要么我做错了,请让我知道.

谢谢!

推荐答案

接口继承是一个很好的工具,尽管您应该仅在接口B确实可以替代接口A时才使用它,而不仅仅是聚合松散相关的行为.

很难判断它是否适合你的具体情况,但原则上使用这种做法没有错.你总是在一流的API中看到它.从下面的例子中选出一个常见的例子.NET框架:

public interface ICollection<T> : IEnumerable<T>, IEnumerable

.net相关问答推荐

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

C#:如何构造异步/等待代码,其中许多请求是针对相同的、返回缓慢的数据发出的,这可以满足所有请求

在平板电脑上运行我的 Angular 13 和 .Net Api 项目时,它不会向 api 输入请求

如何通过在后台预加载流项来优化流迭代的性能?

如何在 C# 中将 HTTP 发布请求发送到另一个 API?

PowerShell - 如果用户输入凭据,则查询 AD 时出错

无法实例化类的代理:System.Net.HttpWebRequest.找不到无参数构造函数

将日期时间转换为日期格式 dd/mm/yyyy

判断 Windows 路径中是否存在可执行文件

在 .NET 中获取执行 exe 路径的最佳方法是什么?

如何在 C# 中创建 Word 文档?

序列化私有成员数据

如何在 C# 中序列化异常对象?

当我们按下 Enter 键时启动的 WPF 文本框命令

Iif 在 C# 中等效

有没有像样的 C# 分析器?

获取系统中已安装的应用程序

为什么甚至可以更改私有成员,或使用反射在 C# 中运行私有方法?

铸造:(NewType)与对象作为NewType

IronPython 与 Python .NET