Dalla sessione "C# 3 0 Future Directions in Language Innovation" di Anders Hejlsberg all'ultimo Tech-ed, si apprende che oltre alle tante novità, ci saranno anche delle property generate al volo che wrappano i campi privati.
In pratica una scrittura del genere:
public class Product
{
public string Name {get;set;}
}
E' equivalente a questo:
public class Product
{
string name;
public string Name
{
get { return name;}
set { name = value; }
}
}
Sostenevo da anni che ci volesse un metodo di scrittura un po più smart per la definizione di tutte quelle property che non fanno altro che da "smart field". Su come si dovrebbero usare le property il cui unico scopo è wrappare l'accesso ai campi privati ne ho parlato nel mio webcast sul design idiomatico.
Queste property dovrebbero essere generate al volo dal compilatore, e non sarebbero quindi una funzione specifica del nuovo linguaggio. Tutto sommato va anche bene, l'importante è il risultato finale.
E' vero che ci sono molti tool di refactoring che scrivono quella porzione di codice in automatico, ma qui si discute sul fatto che proprio quel codice (prodotto automaticamente o no) quando fa da accessor puro ad un campo privato, è cmq inutile e farraginoso per la gestione delle nostre classi.
E se lo dice il papà di c#...