TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #87 79
🔀 دستور switch:
جایگزین تمیز برای if-elseهای تودرتو

از نوشتن if-else if-elseهای طولانی و تودرتو خسته شدید؟ برای وقت‌هایی که می‌خواید یه متغیر رو با چندین مقدار ثابت مقایسه کنید، #C یه راه حل خیلی تمیزتر و خواناتر داره: دستور switch.

1️⃣ ساختار اصلی switch

ساختارش ساده‌ست: شما یه متغیر رو به switch میدید و بعد با استفاده از case، حالت‌های مختلفی که اون متغیر می‌تونه داشته باشه رو بررسی می‌کنید.

ساختار case: مقدار ثابتی که می‌خوای بررسی کنی.

ساختار break: مهم‌ترین بخش! بعد از اینکه کد یه case اجرا شد، break باعث میشه که از کل بلوک switch خارج بشیم. اگه break رو نذارید، کدتون خطا میده!
ساختار default: اگه هیچکدوم از caseها با مقدار متغیر نخوندن، این بلوک اجرا میشه. مثل else نهایی عمل می‌کنه.

void ShowCard(int cardNumber)
{
switch (cardNumber)
{
case 13:
Console.WriteLine("King");
break;
case 12:
Console.WriteLine("Queen");
break;
case 11:
Console.WriteLine("Jack");
break;
default: // برای بقیه اعداد
Console.WriteLine(cardNumber);
break;
}
}

2️⃣ تکنیک‌های پیشرفته‌تر switch کلاسیک

این switch کلاسیک دو تا ترفند جالب دیگه هم داره:

🧱 روی هم چیدن caseها:

اگه می‌خواید برای چند تا case مختلف، یه کد یکسان اجرا بشه، می‌تونید اون‌ها رو پشت سر هم و بدون break بنویسید:

switch (cardNumber)
{
case 13:
case 12:
case 11:
Console.WriteLine("Face card");
break;
default:
Console.WriteLine("Plain card");
break;
}


⬆️پرش با goto case:

یه قابلیت کمتر شناخته شده، goto case هست که به شما اجازه میده از یک case به یه case دیگه بپرید:
switch (cardNumber)
{
case 12:
Console.WriteLine("Queen");
break;
case -1: // جوکر
goto case 12; // جوکر مثل بی‌بی حساب میشه!
// ... بقیه case ها
}

🤔 حرف حساب و تجربه شما

با اینکه switch در نسخه‌های جدید #C خیلی قدرتمندتر شده (که تو پست بعدی بهش می‌پردازیم)، همین نسخه کلاسیکش هم ابزار فوق‌العاده‌ای برای تمیزتر کردن منطق‌های شرطی شماست.

شما بیشتر از switch استفاده می‌کنید یا if-else if؟ جایی بوده که switch واقعاً کدتون رو تمیزتر کرده باشه؟

خب، اینجا که نمیشه همه حرفا رو زد! 😉
ادامه‌ی بحث، سوالات، غر زدن‌ها و گپ و گفت‌های خودمونی، فقط تو گروه.
[پاتوق گیک های #C]

🔖 هشتگ‌ها:
#CSharp #Programming #Developer #DotNet #ControlFlow #SwitchCase #CleanCode
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →