ورودی و خروجی در Console
ورودی و خروجی در Console
بخشی از آموزش جامع C# و .NET 10
محتوای درس ورودی و خروجی در Console
برنامههای Console محیط مناسبی برای تمرین ورودی، خروجی، فرمتبندی متن و اعتبارسنجی داده هستند. مدیریت صحیح ورودی کاربر اولین گام در نوشتن برنامههای مقاوم در برابر داده نامعتبر است.
۱. Write و WriteLine
Write خروجی را بدون رفتن به خط بعد چاپ میکند و WriteLine پس از چاپ Line Break اضافه میکند.
مثال
Console.Write("Name: ");
Console.WriteLine("Alborz");در این مثال، مفهوم «Write و WriteLine» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۲. ReadLine
ReadLine یک string یا null برمیگرداند. داده دریافتشده معمولاً پیش از استفاده باید Trim، Parse یا اعتبارسنجی شود.
مثال
Console.Write("Name: ");
string name=Console.ReadLine() ?? "Unknown";
Console.WriteLine(name);در این مثال، مفهوم «ReadLine» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۳. String Interpolation
Interpolation با $ خوانایی ساخت رشتههای ترکیبی را نسبت به اتصالهای متعدد با + افزایش میدهد.
مثال
string name="Mouse"; decimal price=900_000m;
Console.WriteLine($"{name}: {price:N0}");در این مثال، مفهوم «String Interpolation» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۴. Format Specifiers
برای اعداد، تاریخ و درصد میتوان از قالبهای استاندارد مانند N2، C و P استفاده کرد.
مثال
decimal price=1234567.89m;
Console.WriteLine($"{price:N2}");
Console.WriteLine($"{DateTime.Now:yyyy-MM-dd}");در این مثال، مفهوم «Format Specifiers» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۵. اعتبارسنجی ورودی
ورودی خارجی قابل اعتماد نیست؛ بنابراین باید محدوده، نوع و الزامات آن پیش از ادامه منطق بررسی شود.
مثال
if (!int.TryParse(Console.ReadLine(), out int age))
Console.WriteLine("Invalid age");در این مثال، مفهوم «اعتبارسنجی ورودی» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نامها عمداً ساده انتخاب شدهاند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب میشود.
۶. مثالهای عملی
Console.Write("Name: ");
string name = Console.ReadLine()?.Trim() ?? string.Empty;
Console.WriteLine($"Welcome {name}");این نمونه عملی چند مفهوم فصل را در کنار هم قرار میدهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.
Console.Write("Quantity: ");
if (!int.TryParse(Console.ReadLine(), out int quantity) || quantity < 0)
{
Console.WriteLine("Invalid quantity");
return;
}
Console.WriteLine($"Quantity: {quantity:N0}");این نمونه عملی چند مفهوم فصل را در کنار هم قرار میدهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.
۷. خطاهای رایج
• استفاده مستقیم از ReadLine بدون کنترل null
• اعتماد به ورودی عددی بدون TryParse
• استفاده بیش از حد از اتصال رشتهها با +
۸. نکات اجرایی
• نامها، Typeها و Methodها را متناسب با مفهوم دامنه و بدون ابهام انتخاب کنید.
• هشدارهای کامپایلر و Nullable را بدون بررسی خاموش نکنید.
• منطق هر بخش را تا حد امکان کوچک، قابل تست و مستقل از I/O غیرضروری نگه دارید.
۹. تمرین عملی
یک ماشینحساب ساده Console بسازید که دو عدد و نوع عملیات را دریافت کند و نتیجه قالببندیشده نمایش دهد.
۱۰. جمعبندی
در این فصل، مبانی «ورودی و خروجی در Console» با تمرکز بر ساختارهای اصلی زبان، الگوهای صحیح استفاده و خطاهای رایج بررسی شد. تسلط بر این مفاهیم زمینه لازم برای اتصال موضوع به فصلهای بعدی و طراحی کدهای خواناتر، قابل نگهداری و قابل تست را فراهم میکند.