gpt4 book ai didi

c# - 为什么接口(interface)不能标记为密封的?

转载 作者:IT王子 更新时间:2023-10-29 04:53:38 24 4
gpt4 key购买 nike

public sealed interface IMyInterface
{
}

给出“修改后的‘sealed’对该项目无效”

我可以在某些方面理解接口(interface)必须是可继承的,否则类无法实现它。

但是为什么我不能指定一个接口(interface)不应该定义子接口(interface)或者有没有办法,只是不使用sealed

编辑

我应该努力解释为什么我想要这个。我经常看到接口(interface)继承链,其中开发人员应该使用组合来代替。 Sealed 是类中的理想选择,我想知道是否有一种方法可以对接口(interface)强制执行相同的操作。在我看来,不合理的继承使得重构和维护变得更加困难。

编辑2

根据评论和帖子的反射(reflect),接口(interface)继承树不可能像对象继承树那样复杂。当您从另一个接口(interface) IX 派生时,您所说的只是“还必须实现 IX”。阻止这种情况没有任何好处。

最佳答案

密封类或类的虚方法的目的是降低成本。为继承而设计是昂贵的,如果你没有正确地做,它是危险的。继承设计不当会导致安全性、正确性和健壮性后果,因此如果您不打算继承设计,密封您的类是明智的,从而避免与继承设计相关的成本。

类需要为继承而设计,因为它们有实现细节。接口(interface)没有实现细节。 没有与可继承接口(interface)相关的成本。因此没有动机添加允许密封接口(interface)的功能。

关于c# - 为什么接口(interface)不能标记为密封的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890627/

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