如何给只读静态字段赋值
本文关键字:字段 赋值 静态 只读 | 更新日期: 2023-09-27 18:15:01
我有一个静态的只读字段。要求在登录时将该值分配给该字段,然后将其设置为只读。我该怎么做呢?
public static class Constant
{
public static readonly string name;
}
请导游。
如果声明了只读字段,则只能在类的构造函数中设置它。您可以做的是实现一个只有getter的属性,并公开一个在登录序列中用于修改值的change方法。程序的其他部分可以有效地使用该属性,而不允许它们更改该值。
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;
static Constant()
{
name = "abc";
}
}
只需在声明(或构造函数)中像这样赋值:
public static class Constant
{
public static readonly string name = "MyName";
}
readonly
是编译器的糖,告诉他你不打算在构造函数之外改变值。如果您这样做,他将生成一个错误。
您还可以在静态类中创建静态构造函数
static Constant()
{
name = "Name";
}