C# Personnalisé getter/setter sans variable privée

J'ai appris le c# récemment, alors quand j'ai appris à écrire des propriétés, on m'a appris à le faire comme ceci:

public string Name { get; set; }

Auto propriétés sont très! Mais maintenant, je suis en train de faire quelque chose d'un peu plus compliqué, donc j'ai besoin d'écrire une paire personnalisée d'accesseurs.

private string _Name;
public string Name {
    get { return _Name; }
    set { _Name = value }
}

Je sais que le compilateur fait une instance privée variable vers le bas dans les profondeurs lorsque l'on utilise les autos, mais je suis gâté et ne voulez pas la variable privée assis autour de la recherche inutile.

Est-il un moyen d'utiliser les accesseurs personnalisés sans une variable privée?

  • Pas de. il n'est pas possible.
  • Oui! Créer une automobile privé de la propriété! JK. Qu'est-ce exactement que vous essayez de faire - qu'est-ce que votre "custom accesseurs" serait de faire qui ne nécessite pas une propriété privée?
  • Qu'entendez-vous par "custom accesseurs" exactement? Ce qui est "personnalisé" à propos d'eux?
  • Je pense que par "custom", il signifie que tous les non-automatique de propriétés.
  • Pourquoi n'est-il pas possible! que diriez -public string Age { get {return 16;} set{doNothingWithThis(value);}}. Il est possible - je ne sais pas s'il serait utile si?
  • Comment la variable privée "regardez inutile" si il est utilisé?
  • Il peut signifier différentes de l'accessibilité pour les getters vs setters.
  • Accesseur est utilisé pour accéder à une variable, de sorte que la réponse serait non
  • Juste au cas où quelqu'un en fait je me demandais, par la coutume, je veux dire, (je ne suis pas sûr de ce que je voulais dire quand j'ai écrit cette HEURE auparavant, parce que la réponse est si clair maintenant, je m'égare) je veux dire que je devais faire exactement ce que Josh Happoldt la réponse suggérée, exécuter un couple d'appels de méthode pour voir ce que la propriété doit ressembler à
  • Simple grande Réponse. +1 pour faire un commentaire plus fort que de réponses listées ci-dessous.
  • Une meilleure approche de ce problème est suivi ici: github.com/dotnet/csharplang/issues/133

InformationsquelleAutor Tin Can | 2011-12-20