C# Language Archi e immutabilità


Esempio

I tipi immutabili sono tipi che, una volta modificati, creano una nuova versione dell'oggetto in memoria, anziché modificare l'oggetto esistente nella memoria. L'esempio più semplice di questo è il tipo di string incorporato.

Prendendo il seguente codice, che aggiunge "mondo" alla parola "Ciao"

string myString = "hello";
myString += " world";

Ciò che sta accadendo in memoria in questo caso è che un nuovo oggetto viene creato quando si aggiunge alla string nella seconda riga. Se si esegue questa operazione come parte di un loop di grandi dimensioni, è possibile che ciò causi problemi di prestazioni nell'applicazione.

L'equivalente mutabile per una string è un StringBuilder

Prendendo il seguente codice

StringBuilder myStringBuilder = new StringBuilder("hello");
myStringBuilder.append(" world");

Quando lo esegui, stai modificando l'oggetto StringBuilder stesso nella memoria.