Qual è la differenza tra queste definizioni di proprietà in C #

0
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?

    
posta Yja Yja 10.07.2013 - 10:38
fonte

1 risposta

5

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).

    
risposta data 10.07.2013 - 11:11
fonte

Leggi altre domande sui tag