属性命名采用Pascal命名方式,每个单词的首字母大写。访问方式与访问类的公共字段类似。
/// <summary> /// 字段 /// </summary> private int age; /// <summary> /// 属性 /// </summary> public int Age { //get访问器不带任何参数,且必须返回属性声明的类型 get { return age; } //set访问器不显示指定任何参数,但编译器假定其带一个参数,类型与属性相同,并表示为value set { age = value; } }
1.只读/只写属性
在属性定义中省略set访问器,可以创建只读属性;省略get访问器,可以创建只写属性。
2.属性的访问修饰符
C#允许给属性的get和set访问器设置不同的访问修饰符。在get和set访问器中,必须有一个具备属性的访问级别。若set访问器有一个私有访问修饰符,而get访问器没有任何访问修饰符,则表示get访问器具有属性的访问级别。
/// <summary> /// 字段 /// </summary> private int age; /// <summary> /// 属性 /// </summary> public int Age { //get访问器不带任何参数,且必须返回属性声明的类型 get { return age; } //set访问器不显示指定任何参数,但编译器假定其带一个参数,类型与属性相同,并表示为value private set { age = value; } }
3.自动属性
自动属性两个访问器必须同时存在,访问器的访问级别可以不同
public string Name { get; set; } public string Sex { get; private set; }
参考书籍:《C#高级编程(第9版)》