Koo*_*bin 4 c# variables field properties class
为对象定义属性而不是直接访问私有变量有什么好处?
代替 :
public class A
private _x as integer = 0
Public property X() as integer
Get
return _x
End Get
Set(ByVal value As integer)
_x = value
End Set
End Property
end class
Run Code Online (Sandbox Code Playgroud)
为什么我们不能做以下事情:
public class A
public _x as integer = 0
end class
Run Code Online (Sandbox Code Playgroud)
有什么好处?
一个好处是许多框架为了绑定目的而不是字段来查找类的属性.因此,_x当您想知道为什么框架没有按照您的预期设置值时,直接暴露该字段会引起一些令人头疼的问题.
同样由于封装,您可以更改调用代码与字段交互时发生的情况.隐藏属性getter/setter后面的字段允许您执行其他操作,例如在值更改时触发,更新其他内部状态或完全更改实现,因此它只是对子对象的包装调用.
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |