我什么也看不见这两个类之间的差异:字段和自动属性之间的区别是什么?
class Class1
{
public int a;
}
class Class2
{
public int a { get; set; }
}
为什么使用时,可以使用前者,后者?
我什么也看不见这两个类之间的差异:字段和自动属性之间的区别是什么?
class Class1
{
public int a;
}
class Class2
{
public int a { get; set; }
}
为什么使用时,可以使用前者,后者?
有了属性,你可以在事后把你“变”成一个getter/setter方法范式,你会打破更少的代码
性能也往往与框架,利用反射
的发挥更好虽然我同意你,这通常被认为是真正的原因,国际海事组织第一个论点并不合理。您可以轻松地将字段转换为属性。 – Kenneth 2013-05-13 22:02:30
@Kenneth如果你这样做,比[使用你的库的程序将不得不重新编译](http://stackoverflow.com/questions/737290/why-prefer-properties-to-public-variables%5C) – 2013-05-13 22:04:58
另外,一个属性可以在接口中声明,但是一个字段不能。 – 2013-05-13 22:08:19
public int a { get; set; }
定义属性: http://msdn.microsoft.com/en-us/library/k69wcs43.aspx
Getter和Setter是implicits
另一个类似的问题:[公共领域与自动属性](http://stackoverflow.com/questions/1180860/public-fields-versus-automatic-properties) – Sam 2013-05-13 21:59:17