Setters privés C#

Harshit Jindal 12 octobre 2023
  1. Utiliser les getters comme accesseur Get en C#
  2. Utiliser les setters comme Set Accessor en C#
Setters privés C#

Les propriétés en C# sont une combinaison de champs et de méthodes. Ce ne sont pas des variables et ne peuvent donc pas être passés en tant que paramètres out ou ref dans les fonctions.

Ils aident à contrôler l’accès aux données, effectuent la validation des données avant l’édition et favorisent un code plus propre car il évite la déclaration de variables privées explicites à l’aide de getters et de setters.

Avant de plonger profondément dans l’utilisation des setters privés, discutons d’abord des concepts de getters et de setters et passons lentement aux rôles de modificateurs d'accès.

Utiliser les getters comme accesseur Get en C#

Le code des getters est exécuté lors de la lecture de la valeur. Comme il s’agit d’une opération de lecture sur un champ, un getter doit toujours retourner le résultat.

Un getter public signifie que la propriété est lisible par tout le monde. Alors que le getter private implique que la propriété ne peut être lue que par classe et est donc une propriété en écriture seule.

Nous devons choisir entre des getters en fonction de nos besoins.

Utiliser les setters comme Set Accessor en C#

Le code des setters est exécuté lors de l’écriture de la valeur.

Il s’agit d’une opération d’écriture et donc d’une méthode void. Il prend comme argument la valeur du champ.

La valeur peut être attribuée à la propriété dans sa forme actuelle, ou nous pouvons effectuer certains calculs avant de l’attribuer.

Le public setter signifie que la valeur est éditable par tout objet présent en dehors de la classe. D’autre part, le setter privé signifie que la propriété est en lecture seule et ne peut pas être modifiée par d’autres.

Maintenant que nous connaissons la différence entre getter, setter et l’impact des accessor modifiers, nous pouvons nous intéresser spécifiquement aux setters privés.

public int Prop { get; private set; }

// The below code is the same as above, see the cleanliness use of auto property brings.
private int prop;
public int Prop {
  get { return prop; }
}

Nous pouvons voir à partir du code ci-dessus que l’utilisation de etters privés n’est pas seulement une bonne pratique de codage, mais rend notre code intrinsèquement encapsulé.

L’Encapsulation signifie que les objets de notre classe collent à une interface et conservent toujours leur état. Ici, refuser à la propriété d’être modifiable de l’extérieur rend les classes plus robustes et performantes.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn