我有一个属性,哪个getter应该只在第一次加载它的值。第二次返回加载的值,而无需再次加载它:加载属性延迟加载
private Object _MemberValue;
public Object MemberValue
{
get
{
if(_MemberValue == null)
{
_MemberValue = LoadMember();
}
return _MemberValue;
}
}
在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
在C#没有这样的关键字。
有没有更好的C#实现这个问题或其他模式?
[推荐使用的原因'Static'不好读。(http://stackoverflow.com/a/7475348/993547) –
查看懒惰对象 – Nkosi
你的第一个片段btw有什么问题? –