12

ここでのキーワードとは何ですか?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;
    }
4

3 に答える 3

20

プロパティ セッターのコンテキストでは、valueキーワードはプロパティに割り当てられる値を表します。実際には、次のsetように宣言されているかのように、アクセサーの暗黙的なパラメーターです。

private int _num
public int num
{ 
    get 
    {
        return _num;
    }
    set(int value)
    {
        _num=value;
    }
}

プロパティ アクセサーは、実際には次のものと同等のメソッドです。

public int get_num()
{
    return _num;
}

public void set_num(int value)
{
    _num = value;
}
于 2012-08-18T14:52:28.440 に答える
8

value キーワードコンテキスト キーワードです。つまり、コンテキストに基づいて異なる意味を持ちます。

ブロック内ではset、単にプログラマーが設定した値を意味します。例えば、

className.num = 5;

この場合、ブロック内のvalue5 に等しくなります。したがって、次のように書くことができます。set

set
{
    int temp = value; //temp = 5
    if (temp == 5) //true
    {
        //do stuff
    }
    _num = value;
}

ブロックの外では、次のように変数識別子としてset使用できます。value

int value = 5;

ブロック内でこれを行うことはできないことに注意してください。set

補足: プロパティは大文字にする必要がありnumますNum。これは、クラスを読んでいる人がパブリック プロパティとプライベート プロパティを簡単に識別できるようにする一般的な規則です。

于 2012-08-18T14:54:10.023 に答える