۱

مقدمه و نصب 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# را کاملاً بفهمیم:

ساختار کلی یک برنامه 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.WriteLine("و من در خط سوم!");

خروجی:

سلام!
من در خط دوم هستم!
و من در خط سوم!

۲. Console.Write() - چاپ بدون خط جدید

این دستور متن را چاپ می‌کند اما به خط بعدی نمی‌رود:

مثال Console.Write
Console.Write("سلام ");
Console.Write("دنیا! ");
Console.Write("من در همان خط هستم!");

خروجی:

سلام دنیا! من در همان خط هستم!

۳. تفاوت WriteLine و Write

مقایسه WriteLine و Write
// استفاده از WriteLine
Console.WriteLine("خط اول");
Console.WriteLine("خط دوم");

// استفاده از Write
Console.Write("بخش اول ");
Console.Write("بخش دوم ");
Console.WriteLine(); // خط خالی

// ترکیب هر دو
Console.Write("شروع: ");
Console.WriteLine("پایان در همین خط!");

خروجی:

خط اول
خط دوم
بخش اول بخش دوم
شروع: پایان در همین خط!

دریافت ورودی از کاربر 📥

برای تعامل با کاربر، باید بتوانیم از او ورودی دریافت کنیم:

۱. Console.ReadKey() - خواندن یک کلید

منتظر می‌ماند تا کاربر یک کلید فشار دهد:

مثال ReadKey
Console.WriteLine("یک کلید فشار دهید...");
Console.ReadKey(); // منتظر فشردن کلید
Console.WriteLine("\nکلید فشرده شد!");

۲. Console.ReadLine() - خواندن یک خط

منتظر می‌ماند تا کاربر متنی تایپ کند و Enter بزند:

مثال ReadLine
Console.Write("اسم شما چیه؟ ");
string name = Console.ReadLine(); // دریافت اسم
Console.WriteLine("سلام " + name + "!");

۳. Console.Read() - خواندن یک کاراکتر

فقط اولین کاراکتر تایپ شده را می‌خواند:

مثال Read
Console.Write("اولین حرف اسم شما: ");
int firstChar = Console.Read(); // کد ASCII حرف
Console.WriteLine("\nکد ASCII: " + firstChar);

اولین برنامه کامل: سلام دنیا! 👋

حالا که همه مفاهیم را یاد گرفتیم، بیایید اولین برنامه کامل خود را بنویسیم:

Program.cs - برنامه کامل
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# ===

🎉 این اولین برنامه من در C# است!
📅 تاریخ: 1404/10/15

👤 لطفاً اسم خود را وارد کنید: علی
🎂 سن شما چند سال است؟ 25

=== اطلاعات شما ===
نام: علی
سن: 25 سال

🚀 تبریک! شما اولین برنامه C# خود را نوشتید!

⌨️ برای خروج یک کلید فشار دهید...

💡 نکات مهم:

  • DateTime.Now تاریخ و زمان فعلی را نشان می‌دهد
  • \n برای رفتن به خط بعدی استفاده می‌شود
  • + برای چسباندن متن‌ها به هم استفاده می‌شود
  • string نوع داده برای ذخیره متن است

تمرین‌های عملی! 🧠

حالا وقت تمرین است! این تمرین‌ها به شما کمک می‌کنند تا مفاهیم یاد گرفته شده را تقویت کنید.

تمرین ۱: معرفی خودتان 👤

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

راهنمایی: از Console.Write برای سوال و Console.ReadLine برای دریافت جواب استفاده کنید.

جواب تمرین ۱

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();
        }
    }
}

تمرین ۲: ماشین حساب ساده ➕

برنامه‌ای بنویسید که دو عدد از کاربر بگیرد و جمع آن‌ها را نمایش دهد.

راهنمایی: از int.Parse() برای تبدیل متن به عدد استفاده کنید.

جواب تمرین ۲

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() متن را به عدد صحیح تبدیل می‌کند. اگر کاربر عدد وارد نکند، برنامه خطا می‌دهد.

تمرین ۳: برنامه تعاملی 💬

برنامه‌ای بنویسید که مثل یک ربات با کاربر صحبت کند و سوالات مختلفی از او بپرسد.

چالش: از Console.Write و Console.WriteLine ترکیبی استفاده کنید تا خروجی زیبا باشد.

جواب تمرین ۳

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 برنامه‌های تعاملی و جذاب بسازید.

🏆 چالش اضافی

سعی کنید تمرین‌های بالا را ترکیب کنید و یک برنامه بسازید که:

  • • از کاربر اطلاعات شخصی بگیرد
  • • دو عدد از او بپرسد و جمع کند
  • • در پایان همه اطلاعات را به صورت زیبا نمایش دهد
  • • از ایموجی و رنگ‌های مختلف استفاده کند