Acasă Dezvoltare Ce este tipul mutabil? - definiție din techopedia

Ce este tipul mutabil? - definiție din techopedia

Cuprins:

Anonim

Definiție - Ce înseamnă tipul mutabil?

Tipul mutabil, în C #, este un tip de obiect al cărui membri de date, cum ar fi proprietăți, date și câmpuri, pot fi modificate după crearea sa.


Tipurile mutabile sunt utilizate în aplicații paralele, în care obiectele tipului de valoare mutabilă sunt păstrate în stivă de către Common Language Runtime (CLR). Acest lucru oferă o oarecare optimizare, ceea ce o face mai rapidă decât obiectele alocate de la haldă. Pentru a preveni apariția erorilor de sincronizare în aplicații paralele datorită mai multor fire care accesează datele partajate, tipurile mutabile sunt utilizate cu un fel de mecanism de blocare.


Datorită naturii sale, datele de tip mutabile pot fi modificate în timpul rulării, astfel încât tipul mutabil este adesea utilizat atunci când obiectul conține o cantitate mare de date schimbabile. Deși tipul mutabil nu este la fel de sigur pe fire și sigur ca cel imuabil, este folosit mai des cu variabile de tip valoric, care sunt alocate în stivă, îmbunătățind performanța.

Techopedia explică tipul mutabil

Toate tipurile de valoare încorporate, cum ar fi int, dublu, etc., sunt tipuri mutabile și pot fi făcute imuabile prin adăugarea modificatorului „readonly” înaintea variabilelor. Dacă este specificat un tip de referință mutabil cu un modificator de citire, compilatorul C # generează un avertisment. Prin adăugarea unui modificator de citire la un câmp de tip de referință, câmpul nu poate fi înlocuit cu o altă instanță de tipul de referință, dar va permite modificarea datelor de instanță a câmpului prin tipul de referință.


De exemplu, StringBuilder este un tip de referință mutabil în biblioteca de cadru .NET, prin care valoarea șirului unei instanțe create din acest tip poate fi modificată prin adăugarea, eliminarea, înlocuirea sau inserarea caracterelor.


Un tip mutabil nu ar trebui să fie derivat dintr-un tip imuabil, deoarece există posibilitatea unei metode virtuale din clasa derivată să o înlocuiască astfel încât membrii imuabili să fie suprascritti.


Principala limitare a tipului mutabil este aceea că, în timp ce trece un obiect de tip mutabil (cum ar fi struct) prin atribuirea unei variabile locale sau ca parametru la o metodă, valoarea obiectului este transferată și nu obiectul în sine. Prin aceasta, copia obiectului este mutată și nu originalul. Acest comportament poate duce la erori neașteptate.

Această definiție a fost scrisă în contextul C #
Ce este tipul mutabil? - definiție din techopedia