在Java中我可以这样写:
public final static MyClass foo = new MyClass("foo");
在C#中有没有相应的东西?
我能想到的最接近(并不完全相同,final
也有其他含义),与 Java 中的 final
字段最接近的是 readonly
:
public static readonly MyClass field = new MyClass("foo");
如果你有一个原始类型(字符串、整数、布尔值),你可能会想使用 const
代替。
public const string MAGIC_STRING = "Foo";
sealed class finalClass
{
...
}
final
字段类似于C#中的const
字段,但在这种情况下,我认为它们是等效的。 - Jon Skeetreadonly
和const
之间的不同。const
将值固定在代码中,因此如果您用一个包含const
值的DLL替换另一个DLL,那些使用该DLL的其他DLL将需要重新构建才能获取新值。readonly
是运行时的,并且不需要这样做。 - Nick Gotch