可能的重复:
C#:公共字段与自动属性 https://stackoverflow.com/questions/1180860/c-public-fields-versus-automatic-properties
复制?我想不是:
这个问题是not与“为什么
使用属性而不是公共
字段”。具有指定的属性
getter 和 setter 有很大不同
比公共领域。我的问题是,
是一个财产WITHOUT吸气剂和
设置器,任何不同。
最近有了空 getter 和 setter 的能力,使用它们而不是仅仅声明一个公共成员变量有什么好处?
Example:
public string MyProperty
{
get;
set;
}
versus:
public string MyProperty;
一个字:继承。
属性是可继承的,而字段则不可继承。您可以在继承类中使用字段,但不能通过将它们设为虚拟来改变它们的行为。
Like so:
public class Foo {
public virtual int MyField = 1; // Nope, this can't
public virtual int Bar {get; set; }
}
public class MyDerive : Foo {
public override MyField; // Nope, this can't
public override int Bar {
get {
//do something;
}
set; }
}
编辑:除了继承的事实之外,其他答案中指出的点(例如可见性)也是属性相对于字段的巨大好处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)