متغیرها و انواع داده
متغیرها و انواع داده
بخشی از آموزش جامع C# و .NET 10
محتوای درس متغیرها و انواع داده
نوع داده تعیین میکند یک مقدار چگونه در حافظه نگهداری شود و چه عملیاتهایی روی آن معتبر باشد. انتخاب Type صحیح یکی از مهمترین تصمیمهای روزمره در برنامهنویسی C# است.
۱. تعریف متغیر
متغیر یک نام برای دسترسی به مقدار در حافظه است. C# نوع متغیر را در زمان کامپایل کنترل میکند و از بسیاری از خطاهای ناسازگاری نوع جلوگیری میکند.
مثال
int age = 30;
string name = "Sara";
Console.WriteLine($"{name}: {age}");در این مثال، مفهوم «تعریف متغیر» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۲. انواع عددی
int و long برای اعداد صحیح، float و double برای محاسبات اعشاری عمومی و decimal برای محاسبات مالی که دقت دهدهی اهمیت دارد استفاده میشوند.
مثال
int stock = 25;
long views = 9_000_000_000L;
decimal price = 1_250_000.50m;
Console.WriteLine(price * stock);در این مثال، مفهوم «انواع عددی» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۳. bool، char و string
bool برای منطق دوحالته، char برای یک کاراکتر UTF-16 و string برای متن استفاده میشود. string یک Reference Type تغییرناپذیر است.
مثال
bool active = true;
char grade = 'A';
string title = "C#";
Console.WriteLine($"{title} {grade} {active}");در این مثال، مفهوم «bool، char و string» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۴. var و استنتاج نوع
var به کامپایلر اجازه میدهد نوع متغیر را از عبارت سمت راست استنتاج کند. var به معنی dynamic یا بدون نوع بودن نیست.
مثال
var count = 10;
var course = "C#";
Console.WriteLine(count.GetType().Name);در این مثال، مفهوم «var و استنتاج نوع» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۵. const و readonly
const برای مقادیری است که در زمان کامپایل ثابتاند. readonly برای Fieldهایی مناسب است که فقط هنگام تعریف یا در Constructor مقداردهی میشوند.
مثال
const decimal TaxRate = 0.10m;
readonlyValueExample();
static void readonlyValueExample() => Console.WriteLine(TaxRate);در این مثال، مفهوم «const و readonly» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۶. Nullable Types
Value Typeها با ? میتوانند null بپذیرند. Nullable Reference Types نیز تحلیل ایستای احتمال null را برای Reference Typeها فراهم میکند.
مثال
int? selectedId = null;
int id = selectedId ?? 0;
Console.WriteLine(id);در این مثال، مفهوم «Nullable Types» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۷. مثالهای عملی
int count = 12;
long total = 9_000_000_000L;
double ratio = 12.75;
decimal price = 149_900.50m;
bool isActive = true;
char grade = 'A';
string title = "C# Course";این نمونه عملی چند مفهوم فصل را در کنار هم قرار میدهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.
var courseName = "C#";
const int MaxAttempts = 3;
int? selectedId = null;این نمونه عملی چند مفهوم فصل را در کنار هم قرار میدهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.
۸. خطاهای رایج
• استفاده از double برای محاسبات مالی دقیق
• فرض اینکه var نوع متغیر را در زمان اجرا تغییر میدهد
• نادیده گرفتن null در Reference Typeها
۹. نکات اجرایی
• نامها، Typeها و Methodها را متناسب با مفهوم دامنه و بدون ابهام انتخاب کنید.
• هشدارهای کامپایلر و Nullable را بدون بررسی خاموش نکنید.
• منطق هر بخش را تا حد امکان کوچک، قابل تست و مستقل از I/O غیرضروری نگه دارید.
۱۰. تمرین عملی
مدلی از اطلاعات یک محصول شامل شناسه، نام، قیمت، موجودی، فعال بودن و درصد تخفیف تعریف کنید و مقادیر آن را در Console نمایش دهید.
۱۱. جمعبندی
در این فصل، مبانی «متغیرها و انواع داده» با تمرکز بر ساختارهای اصلی زبان، الگوهای صحیح استفاده و خطاهای رایج بررسی شد. تسلط بر این مفاهیم زمینه لازم برای اتصال موضوع به فصلهای بعدی و طراحی کدهای خواناتر، قابل نگهداری و قابل تست را فراهم میکند.