-2

与えられた 200 の出力が、私が期待した 20000 ではないのはなぜですか????

これについて私を助けてください!!!

class Program
{
    static void Main(string[] args)
    {
        mukul x = new mukul();
        x.b= 200;
        Console.WriteLine(Convert.ToString(x.calculate));
        Console.ReadLine()
     }
}

class mukul
{    
     public  int b;

     public int calculate 
     {
         get { return  b; }
         set { b = value * 100; }
     } 
}
4

2 に答える 2

0

この「xb=200;」では 「計算」メソッドではなく、「b」変数のみを呼び出すため、計算メソッドを実行せずに出力として200を取得するたびに。

理解を深めるために

以下の 2 つの命令で 2 つのブレークポイントを取る

取得 { リターン b; }

設定 { b = 値 * 100; }

次に、"xb=200" と "x.claculate=200" のような 2 つの命令に対してステップ イン デバッグ (F11 キーを押す) を実行します。次に、"xb=200" と "x.claculate=200" の違いを観察します。

xb=200 で

「set{b=value*100;}」メソッドは実行できません。つまり、b=value*100 は実行されません。したがって、出力として「200」を取得するたびに。

x.calculate=200 で

「set{b=value*100;}」メソッドが実行されます。これは、値*100が割り当てられたbを意味します。したがって、出力として「20000」が得られます。

最後に、variable("b") ではなく method("calculate") を呼び出す必要があります。

答えが得られることを願っています。楽しいプログラミングをお楽しみください........

于 2013-05-13T04:46:45.300 に答える