Una delle novità maggiormente decantate di .NET 3.5 è l'inferenza dei tipi, ovvero la possibilità di determinare staticamente, a tempo di compilazione, il tipo di una variabile in base al suo contenuto. Tutto quello che serve, per utilizzarla, è indicare var come tipo di dato: quando incontra questa parola chiave, il compilatore sa che deve analizzare i dati memorizzati nella variabile per determinarne il tipo. Si tratta di una funzionalità molto comoda e che, quando si utilizza LINQ, spesso permette di evitare la creazione di classi specializzate per contenere i risultati delle interrogazioni, consentendo comunque di avere un accesso tipizzato alle informazioni.
Bisogna comunque stare attenti quando si utilizza la parola chiave var. In alcuni casi, infatti, si potrebbero ottenere risultati diversi da quelli che ci si aspettano. Consideriamo il seguente esempio:
short s = 4;
var i = s + 1;
Console.WriteLine("Il tipo della variabile i è: " + i.GetType().ToString());
Poiché la variabile s è di tipo short (System.Int16), si potrebbe pensare che il risultato di s + 1 (ovvero 5) sia anch'esso di questo tipo... In realtà non è così: poiché, per impostazione predefinita, l'operatore + applicato a due dati numerici interi restituisce un int, la variabile i sarà di quest'ultimo tipo (d'altra parte, se al posto di var i =... si fosse usato short i =..., si sarebbe ottenuto un errore di compilazione).
Attenzione, quindi: quando si utilizza l'inferenza di tipi, è bene verificare che tutto funzioni come previsto.
Technorati Tags:
.NET,
Programming,
C#