1

正しく理解しているかどうかを確認したかっただけです。getの戻り値は、戻り値をプライベートインスタンスデータと等しくします。また、設定値により、パブリック値の値がプライベートインスタンスの値と等しくなります。私はこれを正しく理解していますか?

4

2 に答える 2

5

常にではない。

Getプロパティの値がどうあるべきか開発者が考えているものを返しset、開発者がデータの保存に適していると判断したものを変更します。多くの場合、プロパティと内部フィールドの間に 1 対 1 のマッピングがありますが、常にではありません。

 int UltimateAnswer {get {return 42;}} // no internal field at all
 int Direct
 { 
     get {return _direct;}
     set {_direct = value;}
 }
 int WithConversion 
 {
    get {return _stored * 100;}
    set { _stored = value / 100;}
 }
 int AutoFiled {get;set;} // this one directly maps to automatically created field.  
于 2012-07-03T04:43:17.250 に答える
4

プロパティが次のように定義されている場合:

    private int _value;
    public int Value
    {
        get { return _value; }
        set { _value = value; }
    }

次に、はい、get はプライベート フィールドの値を返し、_valueset は設定します_valueが、異なる場合もあります。

 public int Value
        {
            get { return getCalculatedValue() } 
            set {
                if (_value > 0)
                {
                    _value = value;
                }
                else
                {
                    _value = -1;
                }
            }
        }

上記の例では、get は指定された関数から計算値を返しgetCalculatedValue()、set は条件の値を検証してから適切に設定しています。

于 2012-07-03T04:42:50.387 に答える