自增操作符++對變量的值加1,而自減操作符--對變量的值減速1。它們適合於sbyte,byte,short,ushort,int,uint,long,ulong,char,float,double,decimal和任何enum類型。比如,假設一個整數x的值為9,那麼執行x++之後的值為10。
注意:自增和自減操作符的操作數必須是一個變量,一個屬性訪問器或一個索引指示器訪問器,而不能是常量或者其它的表達式。比如5++和(x+)--都是非法的。如果操作數是一個訪問器,那麼這個訪問器必須同時支持讀和寫。
自增和自減操作符又有前後綴之分。對於前綴操作符,遵循的原則是“先增減,後使用”,而後綴操作符則正好相反,是“先使用,後增減”。我們用例子來說明這個問題。
程序清單7-7:
using System; class Test { public static void Main(){ int x=5; int y=x++; Console.WriteLine(y); y=++x; Console.WriteLine(y); } }
第一次是先使用後加,所以輸出為5,第二次先加後使用,輸出為7。
再看一個例子。
程序清單7-8:
using System; class Test { public static void Main(){ int x=5; Console.WriteLine((x++)+(x++)+(x++)); int y=(x++)+(x++)+(x++); Console.WriteLine(y); } }
程序運行的結果是:
18
27
讀者可能對輸出結果感到難以理解。其實編譯的過程是這樣:編譯器先對整個表達式掃描,先把x的原值取出來,對表達式求解後,再對每個x執行++運算。