Postfix Increment/Decrement (++, -- หลังตัวแปร) คืนค่าเดิมก่อน แล้วค่อยเพิ่ม/ลด
พฤติกรรม
int a = 10; int b = a++; // b = 10, a = 11 (คืนค่าเก่า แล้วค่อย ++) int x = 10; int y = x--; // y = 10, x = 9 (คืนค่าเก่า แล้วค่อย --)
โค้ดตัวอย่าง
using System;
class Program
{
static void Main()
{
int a, b;
a = 10;
Console.WriteLine(a++); // แสดง 10 (ค่าเก่า)
b = a; // b = 11 (a เพิ่มแล้ว)
Console.WriteLine(a); // 11
Console.WriteLine(b); // 11
}
}
ผลลัพธ์
10 11 11
Prefix vs Postfix
| Operator | ชื่อ | ลำดับการทำงาน | ตัวอย่าง |
|---|---|---|---|
| ++a | Prefix Increment | เพิ่มก่อน → คืนค่าใหม่ | a=10; b=++a → a=11, b=11 |
| a++ | Postfix Increment | คืนค่าเก่า → เพิ่มหลัง | a=10; b=a++ → a=11, b=10 |
| --a | Prefix Decrement | ลดก่อน → คืนค่าใหม่ | a=10; b=--a → a=9, b=9 |
| a-- | Postfix Decrement | คืนค่าเก่า → ลดหลัง | a=10; b=a-- → a=9, b=10 |
Best Practice
หลีกเลี่ยงใช้ใน Expression ซับซ้อน เพราะอ่านยากและ Bug-prone แยกเป็น Statement แยกบรรทัดดีกว่า