Remarque: Cela a été publié lorsque j'ai commencé C #. Avec les connaissances de 2014, je peux vraiment dire que les propriétés automatiques sont parmi les meilleures choses qui soient jamais arrivées au langage C #.
Je suis habitué à créer mes propriétés en C # en utilisant un champ privé et un champ public:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Maintenant, avec .NET 3.0, nous avons des propriétés automatiques:
public string Title { get; set; }
Je sais qu'il s'agit plutôt de questions philosophiques / subjectives, mais y a-t-il une raison d'utiliser ces propriétés automatiques, sauf pour enregistrer cinq lignes de code pour chaque champ? Mon reproche personnel est que ces propriétés me cachent des choses, et je ne suis pas un grand fan de magie noire.
En fait, le champ privé caché n'apparaît même pas dans le débogueur, ce qui est OK étant donné que les fonctions get / set ne font rien. Mais quand je veux réellement implémenter une logique getter / setter, je dois quand même utiliser la paire privé / public.
Je vois l'avantage que j'économise beaucoup de code (une contre six lignes) sans perdre la possibilité de changer la logique getter / setter plus tard, mais là encore je peux déjà le faire en déclarant simplement un champ public "Public string Title" sans le besoin du {get; ensemble; }, ce qui permet même d'économiser plus de code.
Alors, qu'est-ce que je manque ici? Pourquoi quelqu'un voudrait-il réellement utiliser les propriétés automatiques?