字段和属性的关系
属性不仅可以用作字段的置取方法(注意属性是方法),也可以另做他用(在正方形类中,只有边长没有面积字段,但返回正方形类的面积)。
属性的写法与用法
属性的写法与方法几乎相同,只是有几点不同:
- 不以分号结尾
- 方法体内包含至少get和set中的一个方法
- 方法体内的get与set也不以分号结尾
用法如同一个public的字段,示例见下面的第三段代码。
常规写法示例如下
public class Example
{
public int X
{
get { return X; }
//value是要给X设置的值,无需自己定义
set { X = value; }
}
}
简便写法如下
//在VS中输入prop(即property属性的缩写)即可弹出属性的提示
//效果同上
public int X { get; set; }
Example example = new Example();
int a = example.X;
字段及置取方法
private int x;
//常常习惯将字段名的首字母大写,用作置取方法的名称
public int X
{
get { return x; }
set { x = value; }
}
属性作为置取方法的使用场景
当字段仅为类内使用时,使用字段即可。当字段需要被外部访问,但又需要保证数据被合理的使用时,可以使用(属性作为)置取方法封装字段。