[英]how to assign value to readonly static field
我有一个静态且只读的字段。 要求是该值应在登录时分配给该字段,之后应为只读。 我怎样才能做到这一点?
public static class Constant
{
public static readonly string name;
}
请指导。
如果声明一个只读字段,则只能在类的构造函数中进行设置。 您可以做的就是实现一个仅具有吸气剂的属性,并公开一个在登录序列中用来更改值的更改方法。 程序的其他部分可以有效地使用该属性,不允许它们更改值。
您需要一个静态构造函数
public static class Constant
{
public static readonly string name;
static Constant()
{
name = "abc";
}
}
public static class Constant
{
public static string Name
{
get
{
return name;
}
set
{
if (name == null)
name = value;
else
throw new Exception("...");
}
}
private static string name;
}
只需在声明(或构造函数)中分配值,如下所示:
public static class Constant
{
public static readonly string name = "MyName";
}
readonly
是编译器的糖,告诉他,您不打算在构造函数外部更改值。 如果这样做,他将产生一个错误。
您还可以在静态类中创建静态构造函数
static Constant()
{
name = "Name";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.