Molte delle novità introdotte dal .NET Framework 3.5 hanno lo scopo di ridurre la quantità di codice da scrivere e migliorare la leggibilità del codice. Alcune a mio avviso sono interessanti, come gli Extension methods di cui ho parlato qualche giorno fa. Altre cose, invece, consentono sì di scrivere meno codice, ma a scapito della leggibilità del codice. Mi sto riferendo alla sintassi abbreviata per le definizione delle proprietà che è possibile utilizzare in C#. Una proprietà definita come segue:
private int _age;
public int Age
{
get { return _age; };
set { _age = value; };
}
In C# 3.0 può essere riscritta semplicemente come:
public int Age
{
get;
set;
}
Questa dichiarazione verrà espansa a tempo di compilazione in modo da risultare simile a quella precedente. Tuttavia, utilizzando tale sintassi, la variabile privata è creata solo in fase di compilazione, quindi non risulta accessibile da codice. Questo "forma abbreviata" funziona solo con con le proprietà in lettura/scrittura. Non esiste un equivalente per Visual Basic .NET.
A mio avviso, ma è solo la mia opinione, l'utilizzo di questa sintassi può creare confusione (di fatto viene implicitamente creata una variabile privata), inoltre può essere utilizzata solo quando una proprietà si limita a leggere/scrivere una variabile privata, senza fare alcun controllo o validazione sul valore che viene passato.