TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #70 86
🔬 کالبدشکافی var در #C :
ابزار قدرتمند یا کدنویسی شلخته؟

کلمه کلیدی var یکی از مدرن‌ترین و در عین حال بحث‌برانگیزترین قابلیت‌های #C هست. بعضی‌ها عاشقشن و بعضی‌ها ازش فراری‌ان.

اما var دقیقاً چیه؟ آیا #C رو مثل جاوااسکریپت، داینامیک می‌کنه؟ بیاید یک بار برای همیشه، این ابزار قدرتمند رو کالبدشکافی کنیم.

1️⃣حالا var چیست؟ استنتاج نوع در زمان کامپایل 🤖

این var یه کلمه کلیدی برای راحتی کاره. وقتی از var استفاده می‌کنید، به کامپایلر میگید:

"من نوع این متغیر محلی رو نمی‌نویسم. خودت از روی عبارتی که دارم بهش اختصاص میدم، نوعش رو استنتاج (Infer) کن."
// کامپایلر می‌فهمه که x از نوع string هست
var x = "hello";

// کامپایلر می‌فهمه که y از نوع StringBuilder هست
var y = new System.Text.StringBuilder();

// کامپایلر می‌فهمه که z از نوع float هست
var z = (float)Math.PI;


این کدها دقیقاً معادل این هستن که شما خودتون نوع رو به صورت صریح بنویسید.

2️⃣مهم‌ترین نکته: var داینامیک نیست! (Statically Typed) 🛡

این بزرگترین تصور اشتباه در مورد var هست. استفاده از var به هیچ وجه #C رو به یه زبان داینامیک تبدیل نمی‌کنه.

نوع متغیری که با var تعریف میشه، در زمان کامپایل مشخص و قفل میشه و دیگه هرگز قابل تغییر نیست. var فقط برای خلاصه‌نویسیه.
// اینجا کامپایلر نوع x رو int تشخیص میده و این نوع برای همیشه ثابت می‌مونه
var x = 5;

// ❌ خطای زمان کامپایل!
// شما نمی‌تونید یه رشته رو تو یه متغیر از نوع int بریزید.
x = "hello";


3️⃣تله خوانایی: کی نباید از var استفاده کنیم؟ 🧐

با اینکه var کد رو کوتاه‌تر می‌کنه، گاهی وقتا می‌تونه خوانایی کد رو کم کنه. قانون کلی اینه: اگه با یه نگاه به سمت راست مساوی، نتونستید نوع متغیر رو به راحتی تشخیص بدید، بهتره از var استفاده نکنید.
// اینجا x از چه نوعیه؟ int? long?
// برای فهمیدنش باید بریم و متد Next رو چک کنیم.
// این کد خوانایی خوبی نداره.
var x = new Random().Next();

// نوشتن صریح، اینجا خیلی بهتر و خواناتره:
int x = new Random().Next();


🤔 حرف حساب و استایل شما

کلمه کلیدی var یه ابزار عالی برای خلاصه‌نویسی و تمیزتر کردن کده، به شرطی که هوشمندانه ازش استفاده بشه و خوانایی رو فدای کوتاهی نکنیم.

نکته: سناریوهایی هم وجود داره (مثل کار با Anonymous Types) که استفاده از var در اون‌ها اجباریه و بعداً بهشون می‌رسیم.

شما از طرفدارای var هستید یا مخالفش؟ به نظرتون کجاها استفاده از var کد رو بهتر می‌کنه و کجاها بدتر؟

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

[پاتوق گیک های #C]

🔖 هشتگ‌ها:
#CSharp
#CodingTips #CleanCode #Var
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 →