C++, si sa, è un linguaggio complesso: la sua complessità è sicuramente ricambiata da una potenza espressiva probabilmente ineguagliata, che però tipicamente non ne giustifica l'adozione come linguaggio di sviluppo general purpose. C#, si sa, è stato progettato _anche_ per essere "simile (e sexy) per i dev C++, ma più semplice". Proprio quando (come in questo caso) pensi di aver detto la più banale delle ovvietà, ecco che te la devi rimangiare. Per l'ennesima volta, oggi, ho definito una classe dotata di proprietà pubbliche che fungono semplicemente da accessor per i campi privati:
class RenderingEngineInfo
{
private string id = string.Empty;
private string name = string.Empty;
public string Id
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
}
Come si sa, il databinding engine non gradisce attributi pubblici, ed è per questo che ho dovuto ricorrere a delle proprietà, in questo specifico caso implementate con un codice minimo, eppure eccessivamente verboso. Ironia della sorte, in C++/CLI sarebbe bastato:
class RenderingEngineInfo
{
public:
property String^ Id;
property String^ Name;
};
Ancora una volta, giù il cappello di fronte al lavoro di Sutter e Lippman, ma... Non credete che una sintassi simile dovrebbe essere adottata anche da C#?
posted @ lunedì 20 dicembre 2004 17:16