最近脑子不太好用,上班任务不太多,抽空整理下,也算是备份一下。
.Net中字段和属性是很基础的东西,
字段:Field
属性:property
字段定义:存储类要满足其设计所需要的数据,可以为变量,也可以是常量
属性定义:属性是一个方法或一对方法,但在调用它的代码看来,它是一个字段,即属性适合于以字段的方式使用方法调用的场合。——《大话设计模型》
// .Net Framwork3.5 之前的写法 public string Name { get { return _Name; } set { _Name =value ; } } //.Net Framwork3.5 之后的写法 public string Name { get; set; }
/// 原理也就是上面的定义,为一组方法,代码如下:
public string _Name; public string GetName() { return _Name; } public void SetName(string value) { this._Name = value; }
属性和字段的关系
个人认为,属性就是对字段的封装,可以根据个人或者项目的需要进行控制
为什么要使用属性?
使用属性可以对字段进行控制,如设置字段为只读、只写、可对数值进行判断和控制
属性与Public字段的区别:
对于外界公开的数据,我们通常希望能做更多的控制,这就好像我们的房子,我们并不希望房子是全透明的,那样你在家里的所有活动全部都被看得清清楚楚,
毫无隐私可言。通常我们的房子是有门有窗的,但更多的是不透明的墙,这些窗和门其实就是publick,房内的就是private,。而对于房子来说,门窗是可以控制的
我们并不愿意让所有的人都可以从门随意进出。这就是属性的作用,如果把字段声明为publick,那就意味着不设防的门窗,任何时候,调用者都随时可读或可写,程序员无法控制,
这是非常不好的。如果封装为属性,就可以对门窗进行控制。——《大话设计模型》
总结:把对外的数据(字段)封装成属性,方便我们对其进行控制,和程序安全。