在c#.net中获取,设置和赋值关键字

rtz*_*z87 9 .net c#

这里的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)

  • @CopperKettle 它是分配给属性的值。如果执行“num = 42”,则“value”为 42。 (2认同)

Dan*_*iel 6

值关键字上下文关键字,也就是说,它具有基于它的上下文不同的含义.

set块内,它只是意味着程序员将其设置为的值.例如,

className.num = 5;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,valueset块内部等于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块内执行此操作.

附注:您应利用财产numNum; 这是一个常见的惯例,使阅读课程的人更容易识别公共和私人财产.