مقدمه و نصب C# و .NET 🚀
سفر شگفتانگیز ما با C# از اینجا شروع میشه!
C# چیه و چرا باید یادش بگیریم؟
C# یکی از قدرتمندترین و محبوبترین زبانهای برنامهنویسی دنیاست که توسط مایکروسافت ساخته شده:
- Type Safe: خطاها رو قبل از اجرا پیدا میکنه
- Cross Platform: روی Windows، Mac و Linux کار میکنه
- Object Oriented: کد تمیز و قابل نگهداری
- Rich Ecosystem: کتابخانههای فراوان و جامعه بزرگ
💡 نکته جالب: C# برای ساخت وبسایت، اپلیکیشن موبایل، بازی، و حتی هوش مصنوعی استفاده میشه!
نصب .NET SDK و ایجاد اولین پروژه
برای شروع کار با C#، اول باید .NET SDK رو نصب کنیم و اولین پروژهمون رو بسازیم.
۱. دانلود و نصب .NET SDK
از سایت رسمی مایکروسافت آخرین نسخه .NET رو دانلود و نصب کنید.
dotnet --version
✅ اگر شماره نسخه نمایش داده شد، نصب موفقیتآمیز بوده!
۲. ایجاد اولین پروژه Console
حالا وقتشه اولین پروژه C# خودمون رو بسازیم!
mkdir MyFirstApp
cd MyFirstApp
dotnet new console
dotnet run
درک ساختار یک برنامه C# 🏗️
قبل از نوشتن کد، بیایید ساختار یک برنامه C# را کاملاً بفهمیم:
using System; // وارد کردن کتابخانهها
namespace MyFirstApp // فضای نام (نام پروژه)
{
class Program // کلاس اصلی برنامه
{
static void Main(string[] args) // نقطه شروع برنامه
{
// کدهای ما اینجا نوشته میشود
}
}
}
📚 using System;
این خط به برنامه میگوید که از کتابخانه System استفاده کند. این کتابخانه شامل دستورات پایه مثل Console است.
🏠 namespace
فضای نام مثل آدرس خانه است. کدهای مربوط به هم را در یک namespace قرار میدهیم.
🎯 Main Method
این تابع نقطه شروع برنامه است. وقتی برنامه اجرا میشود، اول این تابع اجرا میشود.
آشنایی با Console و دستورات چاپ 🖨️
Console یکی از مهمترین ابزارهای C# برای تعامل با کاربر است. بیایید انواع دستورات آن را یاد بگیریم:
۱. Console.WriteLine() - چاپ با خط جدید
این دستور متن را چاپ میکند و بعد از آن به خط بعدی میرود:
Console.WriteLine("سلام!");
Console.WriteLine("من در خط دوم هستم!");
Console.WriteLine("و من در خط سوم!");
خروجی:
من در خط دوم هستم!
و من در خط سوم!
۲. Console.Write() - چاپ بدون خط جدید
این دستور متن را چاپ میکند اما به خط بعدی نمیرود:
Console.Write("سلام ");
Console.Write("دنیا! ");
Console.Write("من در همان خط هستم!");
خروجی:
۳. تفاوت WriteLine و Write
// استفاده از WriteLine
Console.WriteLine("خط اول");
Console.WriteLine("خط دوم");
// استفاده از Write
Console.Write("بخش اول ");
Console.Write("بخش دوم ");
Console.WriteLine(); // خط خالی
// ترکیب هر دو
Console.Write("شروع: ");
Console.WriteLine("پایان در همین خط!");
خروجی:
خط دوم
بخش اول بخش دوم
شروع: پایان در همین خط!
دریافت ورودی از کاربر 📥
برای تعامل با کاربر، باید بتوانیم از او ورودی دریافت کنیم:
۱. Console.ReadKey() - خواندن یک کلید
منتظر میماند تا کاربر یک کلید فشار دهد:
Console.WriteLine("یک کلید فشار دهید...");
Console.ReadKey(); // منتظر فشردن کلید
Console.WriteLine("\nکلید فشرده شد!");
۲. Console.ReadLine() - خواندن یک خط
منتظر میماند تا کاربر متنی تایپ کند و Enter بزند:
Console.Write("اسم شما چیه؟ ");
string name = Console.ReadLine(); // دریافت اسم
Console.WriteLine("سلام " + name + "!");
۳. Console.Read() - خواندن یک کاراکتر
فقط اولین کاراکتر تایپ شده را میخواند:
Console.Write("اولین حرف اسم شما: ");
int firstChar = Console.Read(); // کد ASCII حرف
Console.WriteLine("\nکد ASCII: " + firstChar);
اولین برنامه کامل: سلام دنیا! 👋
حالا که همه مفاهیم را یاد گرفتیم، بیایید اولین برنامه کامل خود را بنویسیم:
using System; // کتابخانه System را وارد میکنیم
namespace MyFirstApp // نام پروژه ما
{
class Program // کلاس اصلی
{
static void Main(string[] args) // تابع اصلی
{
// چاپ پیام خوشامدگویی
Console.WriteLine("=== خوش آمدید به دنیای C# ===");
Console.WriteLine();
// چاپ اطلاعات برنامه
Console.WriteLine("🎉 این اولین برنامه من در C# است!");
Console.WriteLine("📅 تاریخ: " + DateTime.Now.ToShortDateString());
Console.WriteLine();
// دریافت اطلاعات از کاربر
Console.Write("👤 لطفاً اسم خود را وارد کنید: ");
string userName = Console.ReadLine();
Console.Write("🎂 سن شما چند سال است؟ ");
string userAge = Console.ReadLine();
// نمایش اطلاعات
Console.WriteLine();
Console.WriteLine("=== اطلاعات شما ===");
Console.WriteLine("نام: " + userName);
Console.WriteLine("سن: " + userAge + " سال");
Console.WriteLine();
// پیام پایانی
Console.WriteLine("🚀 تبریک! شما اولین برنامه C# خود را نوشتید!");
Console.WriteLine("\n⌨️ برای خروج یک کلید فشار دهید...");
// منتظر فشردن کلید
Console.ReadKey();
}
}
}
نمونه خروجی برنامه:
🎉 این اولین برنامه من در C# است!
📅 تاریخ: 1404/10/15
👤 لطفاً اسم خود را وارد کنید: علی
🎂 سن شما چند سال است؟ 25
=== اطلاعات شما ===
نام: علی
سن: 25 سال
🚀 تبریک! شما اولین برنامه C# خود را نوشتید!
⌨️ برای خروج یک کلید فشار دهید...
💡 نکات مهم:
- • DateTime.Now تاریخ و زمان فعلی را نشان میدهد
- • \n برای رفتن به خط بعدی استفاده میشود
- • + برای چسباندن متنها به هم استفاده میشود
- • string نوع داده برای ذخیره متن است
تمرینهای عملی! 🧠
حالا وقت تمرین است! این تمرینها به شما کمک میکنند تا مفاهیم یاد گرفته شده را تقویت کنید.
تمرین ۱: معرفی خودتان 👤
برنامهای بنویسید که از کاربر اسم، سن و شهرش را بپرسد و سپس این اطلاعات را به صورت زیبا نمایش دهد.
جواب تمرین ۱
using System;
namespace PersonalInfo
{
class Program
{
static void Main()
{
// دریافت اطلاعات از کاربر
Console.WriteLine("=== معرفی خودتان ===");
Console.WriteLine();
Console.Write("👤 اسم شما: ");
string name = Console.ReadLine();
Console.Write("🎂 سن شما: ");
string age = Console.ReadLine();
Console.Write("🏙️ شهر شما: ");
string city = Console.ReadLine();
// نمایش اطلاعات
Console.WriteLine();
Console.WriteLine("=== اطلاعات شما ===");
Console.WriteLine("نام: " + name);
Console.WriteLine("سن: " + age + " سال");
Console.WriteLine("شهر: " + city);
Console.WriteLine();
Console.WriteLine("خوشحالم که شما رو میشناسم " + name + "! 😊");
Console.ReadKey();
}
}
}
تمرین ۲: ماشین حساب ساده ➕
برنامهای بنویسید که دو عدد از کاربر بگیرد و جمع آنها را نمایش دهد.
جواب تمرین ۲
using System;
namespace SimpleCalculator
{
class Program
{
static void Main()
{
Console.WriteLine("=== ماشین حساب ساده ===");
Console.WriteLine();
// دریافت عدد اول
Console.Write("عدد اول را وارد کنید: ");
string input1 = Console.ReadLine();
int number1 = int.Parse(input1); // تبدیل متن به عدد
// دریافت عدد دوم
Console.Write("عدد دوم را وارد کنید: ");
string input2 = Console.ReadLine();
int number2 = int.Parse(input2);
// محاسبه جمع
int sum = number1 + number2;
// نمایش نتیجه
Console.WriteLine();
Console.WriteLine("=== نتیجه ===");
Console.WriteLine(number1 + " + " + number2 + " = " + sum);
Console.WriteLine();
Console.WriteLine("🎉 تبریک! شما اولین ماشین حساب خود را ساختید!");
Console.ReadKey();
}
}
}
💡 نکته: int.Parse() متن را به عدد صحیح تبدیل میکند. اگر کاربر عدد وارد نکند، برنامه خطا میدهد.
تمرین ۳: برنامه تعاملی 💬
برنامهای بنویسید که مثل یک ربات با کاربر صحبت کند و سوالات مختلفی از او بپرسد.
جواب تمرین ۳
using System;
namespace ChatBot
{
class Program
{
static void Main()
{
Console.WriteLine("🤖 سلام! من ربات دوستانهام!");
Console.WriteLine("بیا با هم آشنا بشیم! 😊");
Console.WriteLine();
// سوال اول
Console.Write("👤 اسم شما چیه؟ ");
string name = Console.ReadLine();
Console.WriteLine("🎉 وای چه اسم قشنگی! سلام " + name + "!");
Console.WriteLine();
// سوال دوم
Console.Write("🎂 چند سالتونه؟ ");
string age = Console.ReadLine();
Console.WriteLine("😮 واو! " + age + " سال؟ عالیه!");
Console.WriteLine();
// سوال سوم
Console.Write("🎨 رنگ مورد علاقهتون چیه؟ ");
string color = Console.ReadLine();
Console.WriteLine("💖 " + color + " رنگ فوقالعادهایه! من هم دوستش دارم!");
Console.WriteLine();
// سوال چهارم
Console.Write("🍕 غذای مورد علاقهتون؟ ");
string food = Console.ReadLine();
Console.WriteLine("🤤 اوه! " + food + " خیلی خوشمزهست!");
Console.WriteLine();
// خلاصه
Console.WriteLine("=== خلاصه آشنایی ما ===");
Console.WriteLine("👤 نام: " + name);
Console.WriteLine("🎂 سن: " + age + " سال");
Console.WriteLine("🎨 رنگ مورد علاقه: " + color);
Console.WriteLine("🍕 غذای مورد علاقه: " + food);
Console.WriteLine();
Console.WriteLine("🤖 خیلی خوشحالم که باهاتون آشنا شدم " + name + "!");
Console.WriteLine("🚀 امیدوارم برنامهنویسی C# رو دوست داشته باشید!");
Console.WriteLine();
Console.WriteLine("⌨️ برای خروج یک کلید فشار دهید...");
Console.ReadKey();
}
}
}
🎯 هدف تمرین: این تمرین به شما کمک میکند تا با ترکیب Console.Write و Console.WriteLine برنامههای تعاملی و جذاب بسازید.
🏆 چالش اضافی
سعی کنید تمرینهای بالا را ترکیب کنید و یک برنامه بسازید که:
- • از کاربر اطلاعات شخصی بگیرد
- • دو عدد از او بپرسد و جمع کند
- • در پایان همه اطلاعات را به صورت زیبا نمایش دهد
- • از ایموجی و رنگهای مختلف استفاده کند