如果我将一个类成员设为私有,然后我想访问该成员,我们必须为该成员定义一个公共属性。但后来我想知道:如果我们可以通过声明公共财产来公开使用该类成员,那么为什么我们不将这个类成员本身定义为公共属性呢?
答案 0 :(得分:13)
出于二进制兼容性的原因,Microsoft建议使用公共属性代替公共字段。如果您正在编写一个库(其他程序将访问它),这只是一个问题。
基本上,想象一下这种情况:
这将彻底打破程序 - 它将停止工作并且只会崩溃。但是,如果您从一开始就拥有公共财产,那么您可以交换库。
这当然只与图书馆有关。在所有其他情况下,建议并不真正相关,如果您愿意,可以使用字段。如果您以后发现您需要一个属性,您仍然可以将其更改为属性,然后您的程序仍然可以正常编译。
答案 1 :(得分:2)
因为您可以验证属性中的指定值。
答案 2 :(得分:0)
属性访问器(get,set方法)允许您在将来更改您的实现。例如,您可以从支持字段(私有类成员)开始,但稍后该属性可能会成为某些计算的结果。此外,属性语法允许您拥有只读成员 - 因此您只能在类中更改值,外部世界只能读取它。
答案 3 :(得分:0)
以下是我们使用公共属性而不是公共字段的原因。
答案 4 :(得分:0)
使用属性的原因非常简单。您可以随时更改代码处理获取/设置其值而不会破坏任何外部程序,具体取决于您的工作 - 这不适用于字段。此外,属性可以标记为虚拟,因此可以通过子类重新定义 - 同样不会破坏任何兼容性。