تفاوت ++x و x++ چیه؟
یکی از سوالای کلاسیک و در عین حال فنی تو مصاحبههای سیشارپ، تفاوت بین ++x (حالت Postfix) و x++ (حالت Prefix) هست.
هر دوتاشون در نهایت مقدار x رو یکی زیاد میکنن، ولی "زمان" این افزایش، زمین تا آسمون با هم فرق میکنه و همین میتونه رفتار کد شما رو کاملاً عوض کنه.
حالت Postfix (اول بده، بعداً زیاد کن!):++x
در این حالت، اول مقدار فعلی و قدیمی x در عبارت استفاده میشه و بعد از اینکه اون خط تموم شد، مقدار x یکی زیاد میشه.
فکر کنید x یه چک بانکیه. شما اول چک رو با همون مبلغ فعلی به طرف میدین (مقدار رو برمیگردونین)، بعد که کارتون تموم شد، تو حساب خودتون یکی بهش اضافه میکنید.
مثال:
int x = 5;
// اینجا اول مقدار فعلی x (یعنی 5) چاپ میشه
Console.WriteLine(x++); // خروجی: 5
// حالا که خط بالا تموم شد، x یکی زیاد شده
Console.WriteLine(x); // خروجی: 6
حالت Prefix (اول زیاد کن، بعداً بده!): x++
اینجا برعکسه. اول مقدار x یکی زیاد میشه و بعد، مقدار جدید و افزایشیافته در عبارت استفاده میشه.
اینجا شما اول تو حساب خودتون یکی به مبلغ چک اضافه میکنید، بعد چک جدید رو با مبلغ افزایشیافته به طرف میدین (مقدار جدید رو برمیگردونین).
مثال:
int y = 5;
// اینجا اول y یکی زیاد میشه (میشه 6)، بعد مقدار جدیدش چاپ میشه
Console.WriteLine(++y); // خروجی: 6
// y که قبلاً زیاد شده بود، هنوز همون 6 هست
Console.WriteLine(y); // خروجی: 6
حرف آخر:
x++ (Postfix):
اول مقدار فعلی رو برمیگردونه، بعد x رو آپدیت میکنه.
++x (Prefix):
اول x رو آپدیت میکنه، بعد مقدار جدید رو برمیگردونه.
دونستن همین نکته کوچیک، به خصوص در حلقهها و محاسبات پیچیده، خیلی به کار میاد و جلوی باگهای منطقی رو میگیره!
🔖 هشتگها :
#CSharp
#QuickTip
#DotNet