我正在寻找一种方法来允许C#对象中的属性只设置一次.编写代码很容易,但我宁愿使用标准机制(如果存在).
public OneShot<int> SetOnceProperty { get; set; }
我想要发生的是,如果属性尚未设置,则可以设置属性,但如果之前已设置,则抛出异常.它应该像Nullable值一样运行,我可以检查它是否已设置.
我有一个属性,getter应该只在第一次加载它的值.第二次返回加载的值而不再加载它:
private Object _MemberValue;
public Object MemberValue
{
get
{
if(_MemberValue == null)
{
_MemberValue = LoadMember();
}
return _MemberValue;
}
}
Run Code Online (Sandbox Code Playgroud)
在VB.NET中有Static关键字.有了它,您不必声明一个类宽成员.
Public Property MemberValue as Object
Get
Static value as Object = Nothing
If (value is Nothing) Then
value = LoadMember()
End If
Return value
End Get
End Property
Run Code Online (Sandbox Code Playgroud)
在C#中没有这样的关键字.
是否有更好的C#实现此问题或其他模式?