一般属性的定义方法
public class Student
{
private string studentName;
public string StudentName
{
get{return studentName};
set{studentName= value};
}
}
自动实现的属性
public class Student
{
public string StudentName{get;set;}
}
使用自动实现的属性,不需要显式地编写get和set访问器以及私有字段,编译器会自动生成
快捷方式: prop + tab键 + tab键
适用要求:
不能直接操作私有字段
不能设置只读/只写属性
不能添加验证逻辑
字段与属性的比较
-
字段(成员变量)
- 字段主要是为类的内部做数据交互使用, 字段一般是private
- 字段可以赋值,也可以取值
- 当字段需要为外部提供数据的时候,请将字段封装为属性,而不是使用共有字段,这是面向对象所提倡的
-
属性
- 属性一般是向外提供数据,主要用来描述对象的静态特征,所以,属性一般是public的
- 属性可以根据需要设置为只读/只写,提高数据安全性
- 属性内部可以添加我们需要的业务逻辑,从而避免非法数据