2017-02-05 2 views
0

引数の1つが値_Aで、ハードコードされたデータ、たとえば "1"の場合、計算値_Bを返すにはどうすればよいですか?ハードコーディングされた値とプロパティ値に基づくクラスからの計算を返します

class Example 
{ 
    private static int _A; 
    private static int _B = _A + 1; 

    public int GetA 
    { 
     get 
     { 
      return _A; 
     } 
     set 
     { 
      _A = value; 
     } 
    } 

    public int GetB 
    { 
     get 
     { 
      return _B; 
     } 
    } 
} 

I`mは常にだけ "1" 取り戻します。

Example example = new Example(); 
example.GetA = 20; // set { }   
Console.WriteLine(example.GetB); // get { } 

私はあなたが宣言と同じ行のプロパティに値を代入すると、値は一度だけ設定されている21

+0

あなたは下駄セッターに_Bを設定する必要があります。または、_Bを、 'private static int _B => _A + 1;' – Kalten

+0

@Kaltenというプロパティで置き換えてください。ありがとうございます。 – Thomas

答えて

0

を得るために期待していました。

少なくとも2つのオプションがあります。新しいプロパティ宣言を矢印関数で使用します。または、依存プロパティのセッターの値を設定します。

class Example 
{ 
    private static int _A; 
    private static int GetB => _A + 1; 

    public int GetA 
    { 
     get 
     { 
      return _A; 
     } 
     set 
     { 
      _A = value; 
     } 
    } 
} 

それとも

class Example 
{ 
    private static int _A; 
    private static int _B; 

    public int GetA 
    { 
     get 
     { 
      return _A; 
     } 
     set 
     { 
      _A = value; 
      _B = _A + 1; 
     } 
    } 

    public int GetB 
    { 
     get 
     { 
      return _B; 
     } 

    } 
} 
関連する問題