gpt4 book ai didi

c# - 什么是空接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 13:25:21 24 4
gpt4 key购买 nike

我正在使用的代码有一个空接口(interface):

public interface ICube {}

它没有方法或属性。

一些类实现ICube,其他接口(interface)继承自ICube
请有人告诉我 ICube 界面有何好处?

最佳答案

您应该从 MSDN 阅读有关Interface Design的内容

https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/interface

✓ 如果您需要一些通用 API 由一组类型(包括值类型)支持,请务必定义一个接口(interface)。

✓ 如果您需要在已经从其他类型继承的类型上支持其功能,请考虑定义一个接口(interface)。

X 避免使用标记接口(interface)(没有成员的接口(interface))。

如果您需要将类标记为具有特定特征(标记),通常使用自定义属性而不是接口(interface)。

✓ 请至少提供一种接口(interface)实现类型。

这样做有助于验证界面的设计。例如,List 是 IList 接口(interface)的实现。

✓ 务必提供至少一个使用您定义的每个接口(interface)的 API(将接口(interface)作为参数的方法或类型化为接口(interface)的属性)。

这样做有助于验证界面设计。例如,List.Sort 使用 System.Collections.Generic.IComparer 接口(interface)。

X 不要将成员添加到以前发布的界面。

更多引用:空界面 Are empty interfaces code smell?

标记界面 What is the purpose of a marker interface?

关于c# - 什么是空接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55761661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com