set语句的使用方法
• set 语句
是通过value 标识符来进行赋值的
可以包含任何语句(甚至没有语句)
struct Time
{
...
public int Hour
{
...
set {
if (value < 0 || value > 24)
throw new ArgumentException("value");
hour = value;
}
}
private int hour, minute, second;
}
Time lunch = new Time();
...
lunch.Hour = 12;
当写一个属性的时候,属性的set语句自动运行。
在上面的例子中,Time结构类有一个整型属性Hour,所以赋给这个属性的值必须是一个整型值。例如:
lunch.Hour = 12;
把一个整型值12赋给了lunch的Hour属性,这个语句会自动调用属性的set语句。set语句是通过value标识符来获得属性的赋值的。例如,如果12被赋给了Hour属性,那么vaue的值就是12。注意的是value不是一个关键字。value只是在set语句中才是一个标识符。你可以在set语句外的任何语句声明value为一变量的名字。例如:
public int Hour
{
get { int value; ... }//正确
set { int value; ... }//错误
}
get语句的使用方法
get 语句
必须返回一个有确定类型的值
功能上就像一个 “get 函数”
struct Time
{
...
public int Hour
{
get
{
return hour;
}
...
}
private int hour, minute, second;
}
Time lunch = new Time();
... Console.WriteLine(lunch.Hour);
//请注意,get和set不是关键字
当读一个属性的时候,属性的get语句自动运行。
get语句必须返回一个有确定类型的值。在上面的例子中,Time结构类有一个整型属性Hour,所以它的get语句必须返回一个整型值。
属性的返回值不能是void(从这里可以推断出字段的类型也不能是void)。这就意味着get语句必须包含一个完整的return语句(retun;这种形式是错误的)。
get语句可以在retun语句前包含任何其他的语句(比如,可以检查变量的类型),但return语句不能省略。
注意,get和set不是关键字,所以你可以在任何地方包括get/set语句中声明一个局部变量、常量的名字是get或set,但最好不要这样做。