Java 和 C# 语言存在很多偏差,我观察到的偏差之一是我们不能在接口(interface)中添加变量常量。作为 Java 背景,我在尝试此操作时看到编译错误时感到困惑。
有没有人解释为什么会这样?
最佳答案
字段是类的实现细节,不应在其接口(interface)中公开。 接口(interface)是一种抽象出类的实现细节的方法。这两个概念看起来很矛盾,实际上并不契合。
您可以改为在接口(interface)中声明属性。
更新(在意识到问题是关于常量,而不是变量字段之后):我认为(纯粹是我个人的猜测)Java 决定允许这样的构造,因为它当时没有 enum
类型。 C# 从一开始就有枚举,并且大多数时候更喜欢枚举而不是常量。此外,您可以在 C# 中创建一个静态类,并在其中添加您喜欢的所有内容,然后将其沿着界面传送,而不会遇到任何真正的麻烦。支持这样的构造只会使接口(interface)定义更加复杂。
关于c# - C# 接口(interface)中不允许的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2175734/