فصل 5 از 40 درس 1 از 1

عملگرها در C#

عملگرها در C#

بخشی از آموزش جامع C# و .NET 10

محتوای درس عملگرها در C#

عملگرها ابزار اصلی ساخت Expressionها هستند. شناخت اولویت، نوع نتیجه و رفتار عملگرهای حسابی، مقایسه‌ای، منطقی و null باعث می‌شود منطق برنامه دقیق و خوانا باقی بماند.

۱. عملگرهای حسابی

عملگرهای +، -، *، / و % برای محاسبات پایه استفاده می‌شوند. نوع Operandها روی نوع نتیجه و رفتار تقسیم اثر دارد.

مثال

int a=7,b=2;
         Console.WriteLine(a+b);
         Console.WriteLine((double)a/b);
         Console.WriteLine(a%b);

در این مثال، مفهوم «عملگرهای حسابی» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۲. مقایسه‌ای

==، !=، >، <، >= و <= نتیجه bool تولید می‌کنند و پایه شرط‌ها هستند.

مثال

int score=80;
         bool passed=score>=60;
         Console.WriteLine(passed);

در این مثال، مفهوم «مقایسه‌ای» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۳. منطقی

&& و || از Short-circuit Evaluation استفاده می‌کنند و ممکن است Operand دوم را اجرا نکنند. ! مقدار منطقی را معکوس می‌کند.

مثال

bool loggedIn=true, admin=false;
         if (loggedIn && !admin) Console.WriteLine("User");

در این مثال، مفهوم «منطقی» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۴. انتساب

= مقدار را تخصیص می‌دهد و شکل‌های ترکیبی مانند += و -= عملیات و انتساب را در یک دستور ترکیب می‌کنند.

مثال

int stock=10;
         stock-=2;
         stock++;
         Console.WriteLine(stock);

در این مثال، مفهوم «انتساب» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۵. Ternary و Null operators

?: برای انتخاب کوتاه میان دو مقدار، ?? برای مقدار جایگزین null و ?. برای دسترسی امن به عضو Nullable استفاده می‌شود.

مثال

int score=75;
         string result=score>=60 ? "Passed" : "Failed";
         string? title=null;
         Console.WriteLine(title ?? result);

در این مثال، مفهوم «Ternary و Null operators» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۶. اولویت عملگرها

برای منطق پیچیده بهتر است به‌جای تکیه صرف بر precedence از پرانتز برای شفافیت استفاده شود.

مثال

int result = (2 + 3) * 4;
         Console.WriteLine(result);

در این مثال، مفهوم «اولویت عملگرها» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۷. مثال‌های عملی

int a = 10;
         int b = 3;
         
         Console.WriteLine(a + b);
         Console.WriteLine(a / b);
         Console.WriteLine(a % b);

این نمونه عملی چند مفهوم فصل را در کنار هم قرار می‌دهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.

string? name = null;
         string displayName = name ?? "Guest";
         
         int score = 82;
         string result = score >= 60 ? "Passed" : "Failed";

این نمونه عملی چند مفهوم فصل را در کنار هم قرار می‌دهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.

۸. خطاهای رایج

• فراموش کردن تفاوت تقسیم صحیح و اعشاری

• استفاده از & به‌جای && بدون دلیل

• ساخت Ternaryهای تو در تو و غیرخوانا

۹. نکات اجرایی

• نام‌ها، Typeها و Methodها را متناسب با مفهوم دامنه و بدون ابهام انتخاب کنید.

• هشدارهای کامپایلر و Nullable را بدون بررسی خاموش نکنید.

• منطق هر بخش را تا حد امکان کوچک، قابل تست و مستقل از I/O غیرضروری نگه دارید.

۱۰. تمرین عملی

برنامه‌ای بسازید که قیمت و درصد تخفیف را دریافت کند و با عملگرهای مناسب قیمت نهایی و وضعیت تخفیف را نمایش دهد.

۱۱. جمع‌بندی

در این فصل، مبانی «عملگرها در C#» با تمرکز بر ساختارهای اصلی زبان، الگوهای صحیح استفاده و خطاهای رایج بررسی شد. تسلط بر این مفاهیم زمینه لازم برای اتصال موضوع به فصل‌های بعدی و طراحی کدهای خواناتر، قابل نگهداری و قابل تست را فراهم می‌کند.