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 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