Cercando di capire meglio le stringhe in C #
Queste asserzioni sono corrette?
- string è immutabile
- string è un tipo di riferimento ma si comporta come il tipo di valore
Per questi esempi di codice ...
string x = "one"
(crea un'istanza di stringa che tiene "uno" in memoria)
x = "two"
(distrugge l'istanza "one" e crea una nuova istanza di stringa che tiene "due" in memoria, anche se sta usando la stessa variabile x)
Se quanto sopra è corretto, cosa succede in una matrice di stringhe quando cambia un valore di indice?
string[] array = new string[2];
array[0] = "boo"; (string "boo" created and held in 0 index)
array[1] = "shoo";
array[0] = "moo";
L'ultimo compito crea un intero nuovo array per cambiare boo in moo? La mia migliore "ipotesi" è che l'array contiene puntatori in modo che l'array [0] punti semplicemente alla nuova istanza di stringa che contiene "moo". È corretto? In caso contrario, qualcuno potrebbe, per favore, chiarire, grazie.