java中的public final static的c#等价物是什么

pet*_*ust 47 c# java static final public

在Java中我可以写:

public final static MyClass foo = new MyClass("foo");
Run Code Online (Sandbox Code Playgroud)

C#中有没有相应的东西?

Meh*_*ari 79

我能想到的Java 字段最接近(不完全相同,final还有其他含义)finalreadonly:

public static readonly MyClass field = new MyClass("foo");
Run Code Online (Sandbox Code Playgroud)

如果你有一个原始类型(string,int,boolean),你可能想要使用它const.

public const string MAGIC_STRING = "Foo";
Run Code Online (Sandbox Code Playgroud)

  • 对于字段,它们几乎完全相同.初始化有不同的规则(这里不相关),有时Java中的`final`字段就像C#中的`const`字段一样,但在这种情况下我认为它们实际上是等价的. (7认同)
  • 请注意,对于原始类型,还有"const". (3认同)
  • 请注意`readonly`和`const`之间的区别.`const`会在值中出现,所以如果你换掉一个带有`const`值的DLL,那么使用它的其他DLL将需要重建以获得新值.`readonly`是运行时,不需要这个. (2认同)