Ricerca…


Classe System.String

In C # (e .NET) una stringa è rappresentata dalla classe System.String. La parola chiave string è un alias per questa classe.

La classe System.String è immutabile, ovvero una volta creato il suo stato non può essere modificato.

Quindi tutte le operazioni eseguite su una stringa come Substring, Remove, Replace, concatenation usando + operatore etc creeranno una nuova stringa e la restituiranno.

Vedi il seguente programma per dimostrazione -

string str = "mystring";
string newString = str.Substring(3);
Console.WriteLine(newString);
Console.WriteLine(str);

Questo stamperà rispettivamente string e mystring .

Archi e immutabilità

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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow