c# - C# 接口(interface)中不允许的字段

标签 c# java

Java 和 C# 语言存在很多偏差,我观察到的偏差之一是我们不能在接口(interface)中添加变量常量。作为 Java 背景,我在尝试此操作时看到编译错误时感到困惑。

有没有人解释为什么会这样?

最佳答案

字段是类的实现细节,不应在其接口(interface)中公开。 接口(interface)是一种抽象出类的实现细节的方法。这两个概念看起来很矛盾,实际上并不契合。

可以改为在接口(interface)中声明属性。


更新(在意识到问题是关于常量,而不是变量字段之后):认为(纯粹是我个人的猜测)Java 决定允许这样的构造,因为它当时没有 enum 类型。 C# 从一开始就有枚举,并且大多数时候更喜欢枚举而不是常量。此外,您可以在 C# 中创建一个静态类,并在其中添加您喜欢的所有内容,然后将其沿着界面传送,而不会遇到任何真正的麻烦。支持这样的构造只会使接口(interface)定义更加复杂。

关于c# - C# 接口(interface)中不允许的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2175734/

相关文章:

c# - 有没有办法将 JSON 对象列表从 JS 传递到 C#?

c# - 多语言应用程序工具包 .xlf 文件在构建期间未更新

Java - Diffie-Hellman 加密 - 错误的输出

使用部署程序集的 eclipse 中的 java.lang.ClassNotFoundException : org. apache.commons.dbcp2.BasicDataSource

c# - 调试器可视化工具和 "Type is not marked as serializable"

c# - IList<InterfaceType> 到 List<ImplementsInterfaceType>?

java - 在 Spring 中使用 ResponseBody 注释返回一个不工作的 Json

java - 根据 GitLab C 上的 JWT 异常,无法找出 JSON 负载中的错误

java - 通过代码动态在eclipse中创建一个JAR文件

c# - 如何等待引发 C# 事件?