2013-05-13 131 views
0

我什么也看不见这两个类之间的差异:字段和自动属性之间的区别是什么?

class Class1 
{ 
    public int a; 
} 

class Class2 
{ 
    public int a { get; set; } 
} 

为什么使用时,可以使用前者,后者?

+0

另一个类似的问题:[公共领域与自动属性](http://stackoverflow.com/questions/1180860/public-fields-versus-automatic-properties) – Sam 2013-05-13 21:59:17

回答

4

有了属性,你可以在事后把你“变”成一个getter/setter方法范式,你会打破更少的代码

性能也往往与框架,利用反射

的发挥更好
+0

虽然我同意你,这通常被认为是真正的原因,国际海事组织第一个论点并不合理。您可以轻松地将字段转换为属性。 – Kenneth 2013-05-13 22:02:30

+0

@Kenneth如果你这样做,比[使用你的库的程序将不得不重新编译](http://stackoverflow.com/questions/737290/why-prefer-properties-to-public-variables%5C) – 2013-05-13 22:04:58

+1

另外,一个属性可以在接口中声明,但是一个字段不能。 – 2013-05-13 22:08:19

相关问题