2017-09-29 10 views
1

実際にこのサイトに質問を投稿する必要があるかどうかはわかりませんが、ここには入ります。 私はエッセンシャルC#6.0を読んでいると私は、この段落に増分と減算の演算子C#

に遭遇したプレフィックス演算子の結果は、それが増減される前に、変数 が持っていたことを値です。後置演算子の結果は、変数がインクリメントされた後の値、または が減分された値です。

私はこれを少なくとも10回は読んだと思うが、私にはこれはちょうど以下のコードの逆である(これは本のものではない)。私が間違っているか、それとも単なる間違いなのか誰にも説明できますか?私はまた正誤表をチェックしましたが、私はそこでこれを見つけることができませんでした。もちろん

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     var a = 23; 
     var b = 23; 

     var c = a++; //postfix 
     var d = ++b; //prefix 

     Console.WriteLine(c); //23 
     Console.WriteLine(d); //24 

    } 
} 
+0

@Sinatr私が質問しているのは、私が正しい質問を理解しているかどうかわからないからです。この質問が実際には重複しているとしたら、実際にはこれが(https:// stackoverflow)でしょう。 com/questions/3346450/what-is-the-i-and-i/3346729#3346729)、2番目の回答は正しいものになります – trebor

答えて

4

それは反対だとそれもMSDNに言及しています:

++variablevariable++

  1. 最初の形式は、接頭インクリメント操作です。演算の結果は、の後にオペランドの値がインクリメントされます。
  2. 第2の形式は、ポストコードインクリメント操作です。オペレーションの結果は、の前にオペランドの値がインクリメントされています。

私はその本を読んでいませんが、そこに言及されていれば大きな間違いです。

+1

[ここ](http://ptgmedia.pearsoncmg.com/ images/9780134141046/samplepages/9780134141046.pdf)は、「マーク・ミカエリスとエリック・リッペルトの本」(「接頭辞の結果」を検索)です。興味深い... – Sinatr