有没有办法在类中拥有一个私有只读字段,该字段可以在类中的任何地方赋值,但只能赋值一次??
也就是说,我正在寻找一种私有的只读类型的字段,它只能被赋值一次,但不一定在构造函数中。因此,如果一个值被重新分配给一个字段,那么它会显示编译时错误(我确信这要求太多了)。
如果有任何模式(不是语言功能)可以做同样的工作,那么你也会真的很想知道这一点。
谢谢你的关注。
您不会收到编译时错误,但您可以使用属性完成您要查找的内容。在 setter 中,仅当内部 bool/flag 为 false 时才设置值。第一次设置后,将标志设置为 true。如果 setter 被另一段代码再次调用,你可以抛出一个 InvalidOperationException 让他们知道它已经被初始化
private bool fieldAlreadySet = false;
private string field;
public string Field
{
get {return field;}
set
{
if (fieldAlreadySet) throw new InvalidOperationException("field already set");
this.field = value;
fieldAlreadySet = true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1941 次 |
| 最近记录: |