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 :)
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Stampa
Download 
10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!