Qu’est-ce que ça veut dire ? Nom public {get; set;}

Je le vois souvent dans la documentation C #. Mais qu’est-ce que ça fait?

public class Car { public Name { get; set; } } 

C’est un raccourci pour:

 private ssortingng _name; public ssortingng Name { get { return _name; } set { _name = value; } } 

Le compilateur génère la variable membre. Cela s’appelle une propriété automatique .

En termes simples, ils sont appelés accesseurs de propriété. Leur implémentation peut être expliquée comme ci-dessous

1.get {return name} Le bloc de code dans l’accesseur get est exécuté lorsque la propriété est en lecture .

2.set {nom = valeur} Le bloc de code dans l’accesseur de l’ensemble est exécuté lorsque la propriété est affectée à une nouvelle valeur.

Par exemple (en supposant que vous utilisez C #)

  class Person { private ssortingng name; // the name field public ssortingng Name // the Name property { get { return name; } set { name = value; } } } 
  1. Maintenant, lorsque vous faites référence à cette propriété comme ci-dessous

    Person p = new Person (); // Instanciation de la classe ou création de l’object ‘p’ de la classe ‘Person’

     System.Console.Write(p.Name); //The get accessor is invoked here 

L’accesseur get est appelé pour lire la valeur de la propriété, c’est-à-dire que le compilateur tente de lire la valeur de la chaîne ‘nom’.

2.Quand vous assignez une valeur (en utilisant un argument) à la propriété ‘Name’ comme ci-dessous

 Person p = new Person(); p.Name = "Stack" // the set accessor is invoked here Console.Writeline(p.Name) //invokes the get accessor Console.ReadKey(); //Holds the output until a key is pressed 

Le set accessor Assigne la valeur “Stack” à la propriété “Name”, c’est-à-dire que “Stack” est stocké dans la chaîne “name”.

Ouput:

Emstackr

C’est une propriété de lecture-écriture automatique. C’est un ajout de C # 3.0. Quelque chose comme:

 public class Car { private ssortingng name; public ssortingng Name { get { return name; } set { name = value; } } } 

sauf que vous ne pouvez pas accéder directement au champ de sauvegarde.

Il s’appelle une propriété implémentée automatiquement et est une nouveauté de C # 3.0 . C’est une syntaxe plus propre lorsque votre access à la propriété ne nécessite aucun comportement ou validation particulier. Sa fonction est similaire à:

 public class Car { private ssortingng _name; public ssortingng Name { get { return _name; } set {_name = value; } } } 

Cela économise donc pas mal de code, mais vous permet de modifier ultérieurement la logique de l’accesseur si un comportement ou des règles doivent être modifiés.

C’est l’équivalent de faire:

 private ssortingng _Text; public ssortingng Text { get { return _Text; } set { _Text = value; } } 

Sauf que vous n’avez pas access à la variable privée à l’intérieur de la classe.

Propriétés implémentées automatiquement

Résumé: Dans C # 3.0 et versions ultérieures, les propriétés implémentées automatiquement rendent la déclaration de propriété plus concise lorsqu’aucune logique supplémentaire n’est requirejse dans les accesseurs de propriétés.