老实说;公共变量和公共属性访问器之间的区别是什么
本文关键字:之间 区别 是什么 属性 变量 老实说 访问 | 更新日期: 2023-09-27 18:01:02
可能的重复:
C#中的字段和属性有什么区别?
我应该为数据使用公共属性和私有字段还是公共字段?
之间的区别是什么
public string varA;
和
public string varA { get; set; }
公共属性访问器将来为您提供了更大的灵活性。
如果您想在设置值时添加验证,只需编写一个非默认的setter即可。您的其他代码都不需要修改。
您也可能出于某些原因想要用代码替换默认的getter。对于公共变量来说,这可能是一个真正的痛苦。
除了其他答案外,您还可以使用一个属性使值只读,甚至仅设置:
public int Item { get; private set; } // read-only outside the class. Can only be set privately.
我也遇到过这样的情况,我后来决定要代理一个对象,或者添加AOP,这基本上需要属性。
使用属性提供了提供抽象和设计层的潜力(使集访问器受保护、私有的能力(。
当指定了一个属性而没有正文时,编译器会创建一个底层私有字段,用于存储值。本质上:
private int item = 0;
public int Item {
get { return item; }
set {item = value; }
}
通常,我倾向于将属性用于公开变量,将字段用于私有变量。如果一个字段被多次访问,并且速度是一个关键的设计要求,我可能会考虑使用该字段。