J'ai une propriété dont getter devrait charger sa valeur seulement la première fois. La deuxième fois, il retourne la valeur chargée sans le charger à nouveau:Charger la propriété paresseux chargement
private Object _MemberValue;
public Object MemberValue
{
get
{
if(_MemberValue == null)
{
_MemberValue = LoadMember();
}
return _MemberValue;
}
}
En VB.NET il y a le mot-clé Static
. Avec cela, vous n'avez pas besoin de déclarer un membre à l'échelle de la classe.
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
En C#, il n'y a pas un tel mot-clé.
Y a-t-il de meilleures implémentations C# de ce problème ou d'autres motifs?
[Lecture recommandée pourquoi l'utilisation 'Static' est mauvais.] (Http://stackoverflow.com/a/7475348/993547) –
Découvrez l'objet Lazy – Nkosi
Quel est le problème avec votre premier extrait btw? –