class myClass
{
int age;
public int Age
{
get{return age;}
set{age = value;}
}
Versus
class myClass
{
public int Age{get; set;}
}
Qual è la differenza tra questi due? Sono entrambi uguali?
Entrambi compilano allo stesso IL.
Una proprietà automatica è semplicemente una scorciatoia per la stessa cosa con un campo di supporto privato (il tuo primo esempio).
Da Proprietà implementate automaticamente su MSDN:
When you declare a property as shown in the following example, the compiler creates a private, anonymous backing field that can only be accessed through the property's get and set accessors.
Come @svick commentato , l'ovvia differenza è che puoi accedere al campo di supporto direttamente nel tuo primo esempio, mentre non puoi farlo nel secondo (dato che è un campo generato, anonimo).
Leggi altre domande sui tag c#