settimane pese quelle trascorse passate a corre per chiudere un progetto e poi costretto a riaprirlo per correggere gli errori commessi a causa della fretta, non il massimo :) ma guardiamo oltre...
mi sono sempre chiesto cosa volesse dire che una stringa è immutabile, adesso ho la risposta (leggedo un libro quà un libro la)
la stringa è un tipo primitivo in c# e come tale, può essere dichiarato direttamente nel codice, quando il compilatore trova una stringa la inserisce nei metadati, un parte dell'assembli che contiene anche le descrizioni dei metodi ed è responsabile delle "magie" dell'intellisense.
prendiamo una semplice stringa letterale:
string s = "ciao"
il compilatore trovando il precedente codice provvede a inserirlo nella tabella nei metadati e successivamente a richiamarla al momento dell'esecuzione
Console.WriteLine(s);
stessa cosa succede se concateniamo stringhe letterali
string s = "ci" + "ao";
in fase di compilazione la stringa viene concatenate e nei metadati viene salvata solo una stringa "ciao"
ma che succede se la stringhe non sono letterali? ad esempio quando è un metodo di una classe a restituire una stringa, la concatenazione viene fatta in fase di esecuzione ( e non di compilazione) in questi casi e sconsigliabile concatenuare le stringhe utilizzando "+" in quanto crea più oggetti stringa nell heap della garbage collector al suo posto è consigliabile utilizzare uno StringBuilder...
inoltre ci sono particolari metodi pre ottimizzare le prestazioni delle stringhe specialmente quando vengono usate per dei confronti., magari ne parlo nella prossima bloggata :)
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- ma dove vai se il var non ..., il 19 luglio 2006 alle 14:47
- DLINQ volume due, il 15 settembre 2005 alle 15:43
- DLinq mi piace , il 15 settembre 2005 alle 10:19
- ancora stringhe, il 21 dicembre 2004 alle 15:24
- in parziale rettifica o precisazione di quanto detto(...), il 13 dicembre 2004 alle 08:00
- interfacce, implementazioni esplicite, l'1 dicembre 2004 alle 14:12