这里的value关键字是什么以及如何将值分配给_num?我很困惑,请给出以下代码的说明.
private int _num;
public int num
{
get
{
return _num;
}
set
{
_num=value;
}
}
public void button1_click(object sender,EventArgs e)
{
num = numericupdown.Value;
}
Run Code Online (Sandbox Code Playgroud)
Tho*_*que 15
在属性设置器的上下文中,value关键字表示分配给属性的值.它实际上是访问器的隐式参数set,就好像它是这样声明的:
private int _num
public int num
{
get
{
return _num;
}
set(int value)
{
_num=value;
}
}
Run Code Online (Sandbox Code Playgroud)
属性访问器实际上是等效于以下的方法:
public int get_num()
{
return _num;
}
public void set_num(int value)
{
_num = value;
}
Run Code Online (Sandbox Code Playgroud)
该值关键字是上下文关键字,也就是说,它具有基于它的上下文不同的含义.
在set块内,它只是意味着程序员将其设置为的值.例如,
className.num = 5;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,value将在set块内部等于5 .所以你可以写:
set
{
int temp = value; //temp = 5
if (temp == 5) //true
{
//do stuff
}
_num = value;
}
Run Code Online (Sandbox Code Playgroud)
在set块之外,您可以使用value变量标识符,如下所示:
int value = 5;
Run Code Online (Sandbox Code Playgroud)
请注意,您无法在set块内执行此操作.
附注:您应利用财产num来Num; 这是一个常见的惯例,使阅读课程的人更容易识别公共和私人财产.