1、获取和设置字段(属性)的值
get是读取属性时进行的操作,set是设置属性时进行的操作。
他们的使用与方法非常类似,可以在操作字段时根据一些规则和条件来设置或获取字段的值。为了保证字段的安全性,可以选择省去get访问器或set访问器。
2、定义属性的语法形式如:
public 数据类型 属性名
{
get
{
获取属性的语句块;
return 值;
}
set
{
设置属性得到语句块;
}
}
在 C# 语言中可以将属性的定义简化如下:
public 数据类型 属性名{get;set;}
这种方式也被称为自动属性设置。
class Bank
{
private int money;//私有字段
public int Money
{
//get访问器,返回已经被赋值的私有变量money
get{return money;}
//set访问器,将打入的赋值给私有变量money
set{momey = value;}
}
}
//Money属性就像银行里的自动存取款机,你看不见里面的money,但你能用set(存钱),用get(取钱)。money是一个私有字段,是分装在类中的,类以外的程序不能直接访问的,类的set和get成员是外部程序访问类内部属性的唯一方法,就像你去银行取钱,你不能直接从银行的保险柜里拿到钱,而是银行营业人员把钱取出来给你的。
GET和SET能让赋值和取值增加限制
public string BillName
{
get
{
return billName;
}
set
{
if (value==string.Empty)
{
throw new Exception("单据名称不能为空");
}
else if (value.Length > 40)
{
throw new Exception("单据名称长度不能超过40个字符");
}
else
{
this.billName = value;
}
}
}
如果在SET访问器中设置这个属性的一些特性,比如说不能为空,长度大小,必须为数字,各类正则表达式等等,然后抛出异常,表示层再来接受,这样就可以少写很多验证程序了。
封装性、安全性、完整性