Type mutable

Définition - Que signifie le type mutable?

Le type mutable, en C #, est un type d'objet dont les membres de données, tels que les propriétés, les données et les champs, peuvent être modifiés après sa création.

Les types mutables sont utilisés dans les applications parallèles, où les objets de type valeur mutable sont conservés dans la pile par le Common Language Runtime (CLR). Cela fournit une certaine optimisation, ce qui le rend plus rapide que les objets alloués au tas. Pour éviter que des erreurs de synchronisation ne se produisent dans les applications parallèles en raison de l'accès de plusieurs threads aux données partagées, les types mutables sont utilisés avec un certain type de mécanisme de verrouillage.

En raison de sa nature inhérente, les données de type mutable peuvent être modifiées pendant l'exécution, de sorte que le type mutable est souvent utilisé lorsque l'objet contient une grande quantité de données modifiables. Bien que le type mutable ne soit pas aussi sûr et sécurisé que le type immuable, il est plus souvent utilisé avec des variables de type valeur, qui sont allouées dans la pile, améliorant les performances.

Definir Tech explique le type mutable

Tous les types de valeur intégrés comme int, double, etc., sont des types mutables et peuvent être rendus immuables en ajoutant le modificateur "readonly" avant les variables. Si un type de référence mutable est spécifié avec un modificateur en lecture seule, le compilateur C # génère un avertissement. En ajoutant un modificateur en lecture seule à un champ de type référence, le champ ne peut pas être remplacé par une autre instance du type référence, mais permettra aux données d'instance du champ d'être modifiées via le type référence.

Par exemple, StringBuilder est un type de référence mutable dans la bibliothèque .NET Framework, à travers lequel la valeur de chaîne d'une instance créée à partir de ce type peut être modifiée en ajoutant, supprimant, remplaçant ou insérant des caractères.

Un type mutable ne doit pas être dérivé d'un type immuable car il existe une possibilité pour une méthode virtuelle de la classe dérivée de le remplacer de telle sorte que les membres immuables soient écrasés.

La principale limitation du type mutable est que lors du passage d'un objet de type mutable (comme struct) via l'affectation d'une variable locale ou en tant que paramètre à une méthode, la valeur de l'objet est transférée et non l'objet lui-même. Par cela, la copie de l'objet est mutée et non l'original. Ce comportement peut entraîner des bogues inattendus.

Cette définition a été écrite dans le contexte de C #