Est-il possible d'avoir une variable qui est une variable d'instance dans une classe mais qui ne peut être accédée que par une propriété spécifique?Variable à usage privé utilisée uniquement dans la propriété
Je crée assez souvent « auto-créer des » propriétés comme si ...
private IWGSLocation _location;
public IWGSLocation Location
{
get
{
_location = _location ?? new WGSLocation();
_location.Latitude = Latitude.GetValueOrDefault(0);
_location.Longitude = Longitude.GetValueOrDefault(0);
return _location;
}
}
ce qui veut dire que je ne vais pas recréer une nouvelle WGSLocation
(ou tout autre type d'objet dont j'ai besoin, ce qui peut être coûteux à créer, ou peut seulement avoir besoin d'être créé une fois) chaque fois que j'accède à la propriété. L'inconvénient est que ma classe peut accéder à la variable _location. Mais je ne le veux pas vraiment, donc s'il y a une façon d'avoir une variable d'instance qui ne peut être utilisée que dans la propriété elle-même?
Je pense quelque chose le long de ces lignes ...
public IWGSLocation Location
{
get
{
WGSLocation _location = _location ?? new WGSLocation();
_location.Latitude = Latitude.GetValueOrDefault(0);
_location.Longitude = Longitude.GetValueOrDefault(0);
return _location;
}
}
Je préfère utiliser les propriétés paresseuses initialisées lorsque j'ai mesuré que la création désirée de celui-ci est un goulot d'étranglement dans mon application. – CodesInChaos