eitaa logo
برنامه نویسی سی شارپ
272 دنبال‌کننده
172 عکس
167 ویدیو
114 فایل
❁﷽❁ 👨‍🏫 Admin: @alialirezapanahi برنامه نویسی برنامه نویسی وب eitaa.com/aspdatnet پروژه ASP.Net Core MVC (پروژه وب و سی شارپ) eitaa.com/projectall ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapan
مشاهده در ایتا
دانلود
دانلود نرم افزار Microsoft .NET Core Runtime v8.0.8/3.1.32 - دانلود دات نت کور https://softsara.ir/microsoft-net-core/
دات‌نت اس‌دی‌کی / .NET SDK دات نت ۸ ویندوز ۶۴ بیت Microsoft .NET SDK (Software Development Kit) به زبان ساده یک چارچوب نرم افزاری است که توسط شرکت مایکروسافت ارائه می‌شود، چارچوب دات‌نت شامل کتابخانه‌های وسیع و زبان‌های مختلف برنامه نویسی است که سهولت زیادی در برنامه نویسی برای توسعه دهندگان به همراه می‌آورد. .NET SDK (Software Development Kit) کاربرد: برای توسعه‌ی نرم‌افزار شامل: کامپایلر (C#، F#، VB) ابزارهای خط فرمان (CLI) کتابخانه‌های استاندارد .NET Runtime (برای اجرای برنامه‌ها) ✅ نیاز به نصب؟ اگر توسعه‌دهنده هستید و می‌خواهید برنامه‌ای با .NET بنویسید، باید .NET SDK را نصب کنید. حجم ۲۱۲ مگابایت بسته توسعه دات نت ۸ در داخل سروش https://splus.ir/sisharpapp/332
نرم‌افزار VSCode با امکانات بی‌نظیر خود یکی از بهترین ابزارهای توسعه کد است که افزونه‌ها نقش کلیدی در افزایش کارایی آن ایفا می‌کنند. برای کاربران ایرانی که با محدودیت‌های اینترنتی مواجه هستند، سایت vscode.devneeds.ir یک راه‌حل کارآمد و مطمئن جهت دانلود رایگان و بدون مشکل افزونه‌ها محسوب می‌شود. با استفاده از این سایت نه تنها به مجموعه‌ای کامل از افزونه‌ها دسترسی خواهید داشت، بلکه امکان بروزرسانی آسان و بدون دردسر نیز فراهم می‌شود. پس اگر به دنبال منبعی مطمئن و ایرانی برای دانلود افزونه‌های VSCode هستید، به vscode.devneeds.ir سر بزنید و از خدمات رایگان و کاربردی آن بهره‌مند شوید. با سپاس از سایت vscode.devneeds.ir که به عنوان یک منبع معتبر و کاربردی، به کاربران ایرانی در حل مشکلات مربوط به VSCode با توجه به شرایط دشوار عدم دسترسی به اینترنت بین الملل کمک کرده است. این محتوا در تاریخ ۱۷ فروردین ۱۴۰۵ انتشار یافته است. امیدواریم که در زمان مطالعه این مطلب، مشکل عدم دسترسی به اینترنت بین الملل رفع شده باشد.
خیلی خوب. یک درس اول کامل و خودکفا برای شما آماده می‌کنم که شامل همه مفاهیم پایه‌ای است، با توضیح کامل و تمرین در انتها. اگر تازه یک پروژه کنسولی ساخته‌اید (dotnet new console)، فایل Program.cs را پاک کنید و کدهای زیر را به‌ترتیب بنویسید و اجرا کنید. --- 📘 درس اول: آشنایی با خروجی، ورودی و توقف برنامه 🎯 سرفصل‌ها: 1. چاپ متن در خروجی (WriteLine و Write) 2. تفاوت WriteLine و Write 3. گرفتن ورودی از کاربر (ReadLine) 4. گرفتن یک کلید از کاربر (ReadKey) 5. جلوگیری از بسته شدن پنجره --- ⏱️ قسمت 1: چاپ متن در خروجی csharp Console.WriteLine("Hello World"); Console.WriteLine("Welcome to C#"); WriteLine یعنی: چاپ کن + برو به خط بعدی. خروجی: Hello World Welcome to C# --- ⏱️ قسمت 2: تفاوت Write و WriteLine csharp Console.Write("A"); Console.Write("B"); Console.WriteLine("C"); Console.Write("D"); Console.WriteLine("E"); خروجی: ABC DE 📌 قانون: · Write = چاپ در همان خط · WriteLine = چاپ + رفتن به خط بعد --- ⏱️ قسمت 3: گرفتن متن از کاربر با ReadLine csharp Console.Write("Enter your name: "); string name = Console.ReadLine(); Console.WriteLine("Hello " + name); 📌 توضیح: · برنامه منتظر می‌ماند تا کاربر Enter بزند · هر چی کاربر تایپ کند، داخل متغیر name ذخیره می‌شود · string یعنی متنی --- ⏱️ قسمت 4: گرفتن یک کلید با ReadKey csharp Console.Write("Press any key to continue: "); Console.ReadKey(); Console.WriteLine("Done!"); 📌 تفاوت با ReadLine: · ReadKey = منتظر هر یک کلید می‌ماند (بدون Enter) · ReadLine = منتظر Enter می‌ماند --- ⏱️ قسمت 5: جلوگیری از بسته شدن پنجره اگر روی فایل exe دوبار کلیک کنید، برنامه تمام می‌شود و صفحه می‌پرد. برای جلوگیری: csharp Console.WriteLine("End of program."); Console.WriteLine("Press Enter to exit..."); Console.ReadLine(); یا با ReadKey: csharp Console.WriteLine("Press any key to exit..."); Console.ReadKey(); --- ✅ تمرین نهایی درس اول برنامه زیر را بدون کپی کردن، خط به خط بنویسید و اجرا کنید: csharp // برنامه معرفی شخص Console.WriteLine("=== Personal Info Program ==="); Console.Write("Enter your first name: "); string firstName = Console.ReadLine(); Console.Write("Enter your last name: "); string lastName = Console.ReadLine(); Console.Write("Enter your age: "); string age = Console.ReadLine(); Console.WriteLine("\n=== Your Info ==="); Console.Write("Name: "); Console.Write(firstName); Console.Write(" "); Console.WriteLine(lastName); Console.WriteLine("Age: " + age); Console.WriteLine("\nPress any key to exit..."); Console.ReadKey(); 🧪 بعد از اجرا، این کارها را بکنید: 1. برنامه را تغییر دهید به‌طوری که به جای ReadKey از ReadLine استفاده کند 2. یک خط Console.WriteLine("Goodbye!") قبل از خروج اضافه کنید 3. جمله خوش‌آمدگویی را با چند Write و یک WriteLine درست کنید --- 📌 جمع‌بندی درس اول دستور کاربرد Console.WriteLine("text") چاپ متن + رفتن به خط بعد Console.Write("text") چاپ متن در همان خط Console.ReadLine() گرفتن متن تا زدن Enter Console.ReadKey() گرفتن یک کلید بدون Enter // text توضیح (کامنت) - اجرا نمی‌شود --- اگر تمرین را انجام دادید و جواب گرفتید، بگویید تا درس دوم (متغیرها و اعداد) را شروع کنیم. هر جای درس اول سوال داشتید، بپرسید.
📘 درس دوم – متغیرها، انواع داده و تبدیلات (نسخه کامل) 🎯 سرفصل‌ها: 1. انواع داده اصلی (int, double, decimal, string, bool, char) 2. تفاوت decimal و double 3. تعریف متغیر و مقداردهی 4. تبدیل انواع: int.Parse و ToString 5. کار با DateTime 6. تمرین جامع --- ⏱️ قسمت 1: انواع داده (6 نوع مهم) نوع معنی مثال توضیح int عدد صحیح int x = 10; بدون اعشار double عدد اعشاری (15 رقم دقت) double pi = 3.1415926535; برای محاسبات علمی decimal عدد اعشاری دقیق (28 رقم دقت) decimal price = 99.99m; برای پول و قیمت string متن string s = "Hi"; داخل کوتیشن bool درست/نادرست bool isOk = true; true یا false char یک کاراکتر char c = 'A'; داخل 'تکی' --- ⭐ تفاوت مهم decimal و double csharp double d = 0.1 + 0.2; decimal m = 0.1m + 0.2m; Console.WriteLine("double: " + d); // 0.30000000000000004 (تقریبی!) Console.WriteLine("decimal: " + m); // 0.3 (دقیق!) 📌 قاعده طلایی: · پول، قیمت، موجودی حساب → از decimal استفاده کنید · محاسبات علمی، مختصات → از double استفاده کنید 📌 نکته: برای decimal حتماً بعد عدد m بگذارید (مثل 10.5m) --- ⏱️ قسمت 2: تعریف متغیر و مقداردهی csharp int age = 25; double height = 1.75; decimal salary = 4500000.50m; string name = "Mohammad"; bool isMarried = false; char grade = 'A'; Console.WriteLine("Name: " + name); Console.WriteLine("Age: " + age); Console.WriteLine("Height: " + height); Console.WriteLine("Salary: " + salary); Console.WriteLine("Married: " + isMarried); Console.WriteLine("Grade: " + grade); --- ⏱️ قسمت 3: تبدیل انواع (خیلی مهم) روش اول: int.Parse() – تبدیل متن به عدد صحیح csharp string input = "100"; int number = int.Parse(input); // تبدیل "100" به 100 Console.WriteLine(number + 5); // نتیجه: 105 روش دوم: Convert.ToInt32() – همان کار را می‌کند csharp string ageText = "30"; int age = Convert.ToInt32(ageText); 📌 فرق آنها: · int.Parse() فقط برای متن استفاده می‌شود · Convert.ToInt32() عدد هم قبول می‌کند (Convert.ToInt32(3.7) → 4) تبدیل متن به decimal: csharp string priceText = "12500.99"; decimal price = decimal.Parse(priceText); Console.WriteLine(price); --- ⏱️ قسمت 4: ToString() – تبدیل هر چیزی به متن csharp int age = 25; string ageText = age.ToString(); // "25" decimal money = 1250000.5m; string moneyText = money.ToString(); // "1250000.5" double pi = 3.14; string piText = pi.ToString(); // "3.14" Console.WriteLine("Age as text: " + ageText); استفاده از فرمت در ToString: csharp decimal salary = 12500000.75m; Console.WriteLine(salary.ToString("N0")); // 12,500,001 Console.WriteLine(salary.ToString("C")); // $12,500,000.75 (پول) Console.WriteLine(salary.ToString("F2")); // 12500000.75 (2 رقم اعشار) --- ⏱️ قسمت 5: مثال عملی – گرفتن ورودی از کاربر با Parse csharp Console.Write("Enter your age: "); string ageInput = Console.ReadLine(); int age = int.Parse(ageInput); // تبدیل متن به عدد Console.Write("Enter your salary: "); string salaryInput = Console.ReadLine(); decimal salary = decimal.Parse(salaryInput); // تبدیل به decimal Console.Write("Enter your height: "); string heightInput = Console.ReadLine(); double height = double.Parse(heightInput); // تبدیل به double Console.WriteLine($"Age: {age}, Salary: {salary:C}, Height: {height}"); 📌 نکته: اگر کاربر به جای عدد حرف بزند، برنامه خطا می‌دهد. بعداً یاد می‌گیریم چطور از خطا جلوگیری کنیم. --- ⏱️ قسمت 6: DateTime – تاریخ و زمان csharp DateTime now = DateTime.Now; Console.WriteLine("Full date: " + now); Console.WriteLine("Year: " + now.Year); Console.WriteLine("Month: " + now.Month); Console.WriteLine("Day: " + now.Day); Console.WriteLine("Day of week: " + now.DayOfWeek); // تبدیل DateTime به متن با فرمت‌های مختلف Console.WriteLine(now.ToString("yyyy-MM-dd")); // 2026-05-19 Console.WriteLine(now.ToString("dd/MM/yyyy")); // 19/05/2026 Console.WriteLine(now.ToString("HH:mm:ss")); // 14:25:30 // تبدیل متن به DateTime string dateText = "2025-12-25"; DateTime christmas = DateTime.Parse(dateText); Console.WriteLine(christmas.ToString("dddd")); // Thursday --- ✅ تمرین نهایی درس دوم (جامع) برنامه‌ای بنویسید که:
1. اسم کاربر را بگیرد (string) 2. حقوق ماهانه را بگیرد (decimal) 3. سن را بگیرد (int) 4. سال تولد را محاسبه کند (سال جاری - سن) 5. بگوید حقوق سالانه چقدر است (حقوق ماهانه × 12) 6. تاریخ امروز را با فرمت 1405/02/29 (شمسی تقریبی) نشان دهد csharp using System.Text; Console.OutputEncoding = Encoding.UTF8; Console.Write("Enter your name: "); string name = Console.ReadLine(); Console.Write("Enter your monthly salary: "); string salaryInput = Console.ReadLine(); decimal monthlySalary = decimal.Parse(salaryInput); Console.Write("Enter your age: "); string ageInput = Console.ReadLine(); int age = int.Parse(ageInput); int currentYear = DateTime.Now.Year; int birthYear = currentYear - age; decimal yearlySalary = monthlySalary * 12; Console.WriteLine("\n=== Your Info ==="); Console.WriteLine("Name: " + name); Console.WriteLine("Age: " + age); Console.WriteLine("Birth year: " + birthYear); Console.WriteLine("Monthly salary: " + monthlySalary.ToString("N0") + " Tomans"); Console.WriteLine("Yearly salary: " + yearlySalary.ToString("N0") + " Tomans"); Console.WriteLine("Today: " + DateTime.Now.ToString("yyyy/MM/dd")); Console.WriteLine("\nPress Enter to exit..."); Console.ReadLine(); --- 📌 جمع‌بندی درس دوم مفهوم مثال عدد صحیح int x = 5; عدد اعشاری معمولی double d = 3.14; عدد اعشاری دقیق (پول) decimal m = 99.99m; متن string s = "hi"; تبدیل متن به int int.Parse("10") تبدیل متن به decimal decimal.Parse("10.5") تبدیل هر چیزی به متن variable.ToString() تاریخ و زمان DateTime.Now --- اگر این درس را کامل فهمیدید، بگویید تا درس سوم (شرط if-else) را شروع کنیم. سوالی بود بپرسید.
خیلی خوب، رسیدیم به درس سوم: دستورات شرطی (if, else if, else) و Switch Case. یک پروژه جدید بسازید (dotnet new console) و کدها را همراه من بنویسید و اجرا کنید. --- 📘 درس سوم – شرط‌ها و تصمیم‌گیری در برنامه 🎯 سرفصل‌ها: 1. شرط if (اگر) 2. شرط if-else (اگر-وگرنه) 3. شرط else if (چند شرط) 4. عملگرهای مقایسه و منطقی 5. دستور switch-case 6. تمرین جامع --- ⏱️ قسمت 1: عملگرهای مقایسه (مهم) قبل از شرط‌ها، باید عملگرهای مقایسه را بلد باشید: عملگر معنی مثال درست == مساوی 5 == 5 ✅ != نامساوی 5 != 3 ✅ > بزرگتر 10 > 5 ✅ < کوچکتر 3 < 8 ✅ >= بزرگتر یا مساوی 5 >= 5 ✅ <= کوچکتر یا مساوی 4 <= 5 ✅ --- ⏱️ قسمت 2: شرط if (اگر) csharp int age = 18; if (age >= 18) { Console.WriteLine("You are an adult"); Console.WriteLine("You can vote"); } 📌 نکات: · شرط داخل () نوشته می‌شود · اگر شرط درست بود، کد داخل {} اجرا می‌شود · اگر فقط یک خط دارید، می‌توانید {} را حذف کنید (ولی بهتر نگذارید) --- ⏱️ قسمت 3: شرط if-else (اگر-وگرنه) csharp int age = 15; if (age >= 18) { Console.WriteLine("You are an adult"); } else { Console.WriteLine("You are a minor"); } خروجی: You are a minor 📌 منطق: اگر شرط if درست بود، if اجرا می‌شود و else نادیده گرفته می‌شود. اگر if غلط بود، else اجرا می‌شود. --- ⏱️ قسمت 4: شرط else if (چند شرط) csharp int score = 85; if (score >= 90) { Console.WriteLine("Grade: A"); } else if (score >= 80) { Console.WriteLine("Grade: B"); } else if (score >= 70) { Console.WriteLine("Grade: C"); } else if (score >= 60) { Console.WriteLine("Grade: D"); } else { Console.WriteLine("Grade: F"); } خروجی: Grade: B 📌 نکته: شرط‌ها از بالا به پایین بررسی می‌شوند. به محض اینکه یکی درست شد، بقیه نادیده گرفته می‌شوند. --- ⏱️ قسمت 5: عملگرهای منطقی (و، یا، نه) عملگر معنی مثال && و (هر دو شرط باید درست باشد) age > 18 && hasLicense == true
  
! نه (برعکس می‌کند) !isRaining مثال: csharp int age = 20; bool hasLicense = true; if (age >= 18 && hasLicense == true) { Console.WriteLine("You can drive"); } else { Console.WriteLine("You cannot drive"); } csharp string day = "Friday"; if (day == "Friday" || day == "Thursday") { Console.WriteLine("It's weekend in Iran!"); } --- ⏱️ قسمت 6: Switch Case (انتخابگر) وقتی یک متغیر را با چند مقدار مختلف مقایسه می‌کنیم، switch خواناتر از if-else است. ساختار کلی: csharp switch (متغیر) { case مقدار1: // کد break; case مقدار2: // کد break; default: // اگر هیچکدام نبود break; } مثال واقعی: csharp Console.Write("Enter day number (1-7): "); int dayNumber = int.Parse(Console.ReadLine()); switch (dayNumber) { case 1: Console.WriteLine("Saturday"); break; case 2: Console.WriteLine("Sunday"); break; case 3: Console.WriteLine("Monday"); break; case 4: Console.WriteLine("Tuesday"); break; case 5: Console.WriteLine("Wednesday"); break; case 6: Console.WriteLine("Thursday"); break; case 7: Console.WriteLine("Friday"); break; default: Console.WriteLine("Invalid day number!"); break; } مثال با string: csharp Console.Write("Enter your favorite color: "); string color = Console.ReadLine(); switch (color.ToLower()) // ToLower: همه را کوچک می‌کند { case "red": Console.WriteLine("You chose passion"); break; case "blue": Console.WriteLine("You chose calm"); break; case "green": Console.WriteLine("You chose nature"); break; default: Console.WriteLine("Nice color!"); break; } 📌 نکات switch: · هر case باید با break تمام شود · default اختیاری است (مثل else) · می‌توان چند case را بدون break پشت سر هم نوشت (fall-through) چند مقدار در یک case:
`
csharp char grade = 'B';
switch (grade) { case 'A': case 'B': case 'C': Console.WriteLine("You passed!"); break; case 'D': case 'F': Console.WriteLine("You failed!"); break; default: Console.WriteLine("Invalid grade"); break; } --- ✅ تمرین نهایی درس سوم برنامه‌ای بنویسید که: 1. از کاربر یک عدد بین 1 تا 12 بگیرد (ماه میلادی) 2. با switch نام ماه را چاپ کند 3. تعداد روزهای آن ماه را با if-else تعیین کند 4. بگوید فصل آن ماه چیست (بهار، تابستان، پاییز، زمستان) csharp Console.Write("Enter month number (1-12): "); int month = int.Parse(Console.ReadLine()); // قسمت 1: نام ماه با switch string monthName; switch (month) { case 1: monthName = "January"; break; case 2: monthName = "February"; break; case 3: monthName = "March"; break; case 4: monthName = "April"; break; case 5: monthName = "May"; break; case 6: monthName = "June"; break; case 7: monthName = "July"; break; case 8: monthName = "August"; break; case 9: monthName = "September"; break; case 10: monthName = "October"; break; case 11: monthName = "November"; break; case 12: monthName = "December"; break; default: monthName = "Invalid"; break; } // قسمت 2: تعداد روزها با if-else int days; if (month == 2) { days = 28; // کبیسه را فعلاً نادیده می‌گیریم } else if (month == 4 || month == 6 || month == 9 || month == 11) { days = 30; } else { days = 31; } // قسمت 3: تشخیص فصل string season; if (month >= 3 && month <= 5) { season = "Spring"; } else if (month >= 6 && month <= 8) { season = "Summer"; } else if (month >= 9 && month <= 11) { season = "Autumn"; } else { season = "Winter"; } Console.WriteLine($"Month: {monthName}"); Console.WriteLine($"Days: {days}"); Console.WriteLine($"Season: {season}"); Console.WriteLine("Press Enter to exit..."); Console.ReadLine();
`
--- 📌 جمع‌بندی درس سوم مفهوم مثال if ساده if (x > 5) { ... } if-else if (x > 5) { ... } else { ... } else if if (x > 90) { ... } else if (x > 80) { ... } switch switch(day) { case 1: ... break; } عملگرهای مقایسه ==, !=, >, <, >=, <= عملگرهای منطقی && (و), ` --- 🧪 تمرین کوچک برای شما برنامه‌ای بنویسید که یک عدد از کاربر بگیرد و بگوید: · عدد مثبت است، منفی است یا صفر · زوج است یا فرد (از عملگر % استفاده کنید: number % 2 == 0) اگر انجام دادید و جواب گرفتید، بگویید تا درس چهارم (حلقه‌ها) را شروع کنیم. سوالی بود بپرسید.
خیلی خوب، رسیدیم به درس چهارم: انواع عملگرها در سی‌شارپ. این درس مکمل درس سوم است. عملگرها همان ابزارهایی هستند که با متغیرها کار می‌کنند (محاسبه، مقایسه، شرط و...). یک پروژه جدید بسازید و کدها را اجرا کنید. --- 📘 درس چهارم – انواع عملگرها (Operators) 🎯 سرفصل‌ها: 1. عملگرهای حسابی (ریاضی) 2. عملگرهای افزایش و کاهش (++ و --) 3. عملگرهای مقایسه‌ای 4. عملگرهای منطقی 5. عملگرهای شرطی (ternary - ? :) 6. عملگرهای انتساب ترکیبی (+=, -=, *=, /=) 7. اولویت عملگرها --- ⏱️ قسمت 1: عملگرهای حسابی (Arithmetic) عملگر معنی مثال نتیجه + جمع 5 + 3 8 - تفریق 5 - 3 2 * ضرب 5 * 3 15 / تقسیم 5 / 2 2 (با int) % باقی‌مانده 5 % 2 1 csharp int a = 17; int b = 5; Console.WriteLine(a + b); // 22 Console.WriteLine(a - b); // 12 Console.WriteLine(a * b); // 85 Console.WriteLine(a / b); // 3 (چون int است) Console.WriteLine(a % b); // 2 (باقی‌مانده 17 تقسیم بر 5) تقسیم اعشاری دقیق: csharp double x = 17; double y = 5; Console.WriteLine(x / y); // 3.4 --- ⏱️ قسمت 2: عملگرهای افزایش و کاهش (Increment & Decrement) عملگر معنی مثال معادل ++ افزایش یک واحد x++ یا ++x x = x + 1 -- کاهش یک واحد x-- یا --x x = x - 1 تفاوت پیشوند و پسوند (مهم): csharp int x = 5; Console.WriteLine(x++); // اول چاپ می‌کند (5)، بعد زیاد می‌کند Console.WriteLine(x); // حالا شده 6 int y = 5; Console.WriteLine(++y); // اول زیاد می‌کند (6)، بعد چاپ می‌کند 📌 نکته: · x++ = بعد از استفاده، زیاد کن · ++x = اول زیاد کن، بعد استفاده کن csharp int counter = 0; counter++; // یک واحد زیاد شد counter--; // یک واحد کم شد --- ⏱️ قسمت 3: عملگرهای مقایسه‌ای (Comparison) نتیجه این عملگرها همیشه bool است (true یا false). عملگر معنی == مساوی != نامساوی > بزرگتر < کوچکتر >= بزرگتر یا مساوی <= کوچکتر یا مساوی csharp int age = 20; Console.WriteLine(age == 18); // False Console.WriteLine(age != 18); // True Console.WriteLine(age > 18); // True Console.WriteLine(age < 18); // False Console.WriteLine(age >= 20); // True Console.WriteLine(age <= 20); // True --- ⏱️ قسمت 4: عملگرهای منطقی (Logical) برای ترکیب چند شرط استفاده می‌شوند. عملگر معنی توضیح && AND (و) هر دو طرف درست باشند → true
  
! NOT (نقیض) true را false و false را true می‌کند جدول درستی: | A | B | A && B | A || B | !A | |---|---|--------|----------|----| | true | true | true | true | false | | true | false | false | true | false | | false | true | false | true | true | | false | false | false | false | true | مثال عملی: csharp int score = 85; bool hasHomework = true; // هر دو شرط باید درست باشد if (score >= 70 && hasHomework == true) { Console.WriteLine("Passed"); } // حداقل یکی درست باشد if (score >= 90 || hasHomework == true) { Console.WriteLine("Good or did homework"); } // برعکس کردن bool isRaining = false; if (!isRaining) { Console.WriteLine("Go outside"); } --- ⏱️ قسمت 5: عملگر شرطی (Ternary) - ? : یک if-else کوتاه و یک خطی. ساختار: csharp شرط ? مقدار_اگر_درست : مقدار_اگر_غلط مثال: csharp int age = 20; string result = (age >= 18) ? "Adult" : "Minor"; Console.WriteLine(result); // Adult مقایسه با if-else عادی: csharp // روش عادی (if-else) int score = 75; string grade; if (score >= 60) { grade = "Pass"; } else { grade = "Fail"; } // روش Ternary string grade2 = (score >= 60) ? "Pass" : "Fail"; مثال دیگر: csharp int number = 7; string evenOdd = (number % 2 == 0) ? "Even" : "Odd"; Console.WriteLine(evenOdd); // Odd --- ⏱️ قسمت 6: عملگرهای انتساب ترکیبی (Compound Assignment) این عملگرها کار با متغیر را کوتاه‌تر می‌کنند. عملگر معنی معادل += جمع و نسبت x = x + 5 -= تفریق و نسبت x = x - 5 *= ضرب و نسبت x = x * 5 /= تقسیم و نسبت x = x / 5 %= باقی‌مانده و نسبت x = x % 5 csharp int x = 10; x += 5; // x = 15 x -= 3; // x = 12 x *= 2; // x = 24 x /= 4; // x = 6 x %= 5; // x = 1 Console.WriteLine(x); // 1 --- ⏱️ قسمت 7: اولویت عملگرها (Precedence) ترتیب محاسبه در ریاضیات: 1. () پرانتز (بالاترین اولویت) 2. ++ -- (پیشوند) 3. * / % 4. + - 5. < > <= >= 6. == != 7. && 8. || (پایین‌ترین اولویت) مثال:
csharp int result = 5 + 3 * 2; // 11 (اول ضرب: 3*2=6، بعد جمع) int result2 = (5 + 3) * 2; // 16 (اول پرانتز: 5+3=8، بعد ضرب) bool r = 5 > 3 && 2 < 4; // true (اول مقایسه‌ها، بعد &&) --- ✅ تمرین نهایی درس چهارم برنامه‌ای بنویسید که: 1. دو عدد از کاربر بگیرد 2. تمام عملگرهای حسابی را روی آنها انجام دهد (جمع، تفریق، ضرب، تقسیم، باقی‌مانده) 3. بگوید آیا مجموع آنها زوج است یا فرد (با ternary) 4. یک شمارنده داشته باشد که هر بار عدد اول را ۱ واحد افزایش دهد csharp Console.Write("Enter first number: "); int num1 = int.Parse(Console.ReadLine()); Console.Write("Enter second number: "); int num2 = int.Parse(Console.ReadLine()); // عملگرهای حسابی Console.WriteLine($"\n{num1} + {num2} = {num1 + num2}"); Console.WriteLine($"{num1} - {num2} = {num1 - num2}"); Console.WriteLine($"{num1} * {num2} = {num1 * num2}"); Console.WriteLine($"{num1} / {num2} = {num1 / num2} (integer division)"); Console.WriteLine($"{num1} % {num2} = {num1 % num2} (remainder)"); // عملگر ternary برای زوج یا فرد بودن مجموع int sum = num1 + num2; string parity = (sum % 2 == 0) ? "Even" : "Odd"; Console.WriteLine($"Sum ({sum}) is {parity}"); // عملگرهای افزایش و انتساب ترکیبی int counter = num1; Console.WriteLine($"\nCounter starts at: {counter}"); Console.WriteLine($"Counter++ (post): {counter++}"); // اول چاپ، بعد زیاد Console.WriteLine($"After post-increment: {counter}"); Console.WriteLine($"++Counter (pre): {++counter}"); // اول زیاد، بعد چاپ counter += 10; Console.WriteLine($"After += 10: {counter}"); Console.WriteLine("\nPress Enter to exit..."); Console.ReadLine(); --- 📌 جمع‌بندی درس چهارم دسته عملگرها حسابی +, -, *, /, % افزایش/کاهش ++, -- مقایسه‌ای ==, !=, >, <, >=, <= منطقی &&,
شرطی (ternary) ? :
انتساب ترکیبی +=, -=, *=, /=, %=

---

🧪 تمرین برای شما

بدون اجرا، بگویید خروجی این کد چیست؟

``
csharp int a = 10; int b = 3; bool c = (a++ > 10) && (b-- < 5); Console.WriteLine($"a={a}, b={b}, c={c}");
`
(جواب: a=11, b=2, c=False زیرا a++ > 10 ابتدا a=10 را مقایسه می‌کند که false است، پس عملگر && بقیه را چک نمی‌کند و b-- اجرا نمی‌شود) --- اگر این درس را کامل فهمیدید، بگویید تا درس پنجم (حلقه‌ها) را شروع کنیم. سوالی بود بپرسید.
خیلی خوب، می‌خواهید try-catch (مدیریت خطا) را یاد بگیرید. این یک مبحث بسیار مهم است. فعلاً "Try cash" را به عنوان try-catch در نظر می‌گیرم. اگر چیز دیگری مد نظرتان بود، بگویید. --- 📘 درس پنجم – مدیریت خطا با try-catch 🎯 سرفصل‌ها: 1. خطا چیست و چرا برنامه کرش می‌کند؟ 2. ساختار try-catch 3. گرفتن خطای خاص (مثلاً FormatException) 4. finally (همیشه اجرا می‌شود) 5. تمرین عملی --- ⏱️ قسمت 1: مشکل بدون try-catch کد زیر را اجرا کنید و به جای عدد، یک متن وارد کنید: csharp Console.Write("Enter a number: "); int number = int.Parse(Console.ReadLine()); // اگر کاربر "abc" وارد کند → خطا! Console.WriteLine("You entered: " + number); خروجی خطا: Unhandled exception. System.FormatException: Input string was not in a correct format. برنامه کرش می‌کند و می‌پرد. --- ⏱️ قسمت 2: راه حل با try-catch csharp try { Console.Write("Enter a number: "); int number = int.Parse(Console.ReadLine()); Console.WriteLine("You entered: " + number); } catch { Console.WriteLine("Error! Please enter a valid number."); } Console.WriteLine("Program continues..."); 📌 نحوه کار: · try = کدی که ممکن است خطا دهد را اینجا می‌گذاریم · catch = اگر خطایی رخ داد، این قسمت اجرا می‌شود · برنامه کرش نمی‌کند و ادامه می‌دهد --- ⏱️ قسمت 3: گرفتن خطای خاص (Type-Specific Catch) می‌توانیم نوع خطا را مشخص کنیم و پیام مناسب بدهیم: csharp try { Console.Write("Enter your age: "); int age = int.Parse(Console.ReadLine()); if (age < 0 || age > 150) { Console.WriteLine("Invalid age range!"); } else { Console.WriteLine($"Your age is: {age}"); } } catch (FormatException) { Console.WriteLine("Error: Please enter a number, not text!"); } catch (OverflowException) { Console.WriteLine("Error: Number is too large or too small!"); } catch (Exception ex) { Console.WriteLine($"General error: {ex.Message}"); } 📌 انواع خطاهای رایج: نوع خطا زمان رخ دادن FormatException کاربر به جای عدد، متن وارد کرده OverflowException عدد از محدوده int خارج است DivideByZeroException تقسیم بر صفر Exception هر خطای دیگری (پدر همه خطاها) --- ⏱️ قسمت 4: try-catch برای تقسیم بر صفر csharp try { Console.Write("Enter first number: "); int a = int.Parse(Console.ReadLine()); Console.Write("Enter second number: "); int b = int.Parse(Console.ReadLine()); int result = a / b; Console.WriteLine($"{a} / {b} = {result}"); } catch (DivideByZeroException) { Console.WriteLine("Error: Cannot divide by zero!"); } catch (FormatException) { Console.WriteLine("Error: Please enter valid numbers!"); } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } --- ⏱️ قسمت 5: finally (همیشه اجرا می‌شود) finally چه خطایی رخ بدهد و چه ندهد، حتماً اجرا می‌شود. csharp try { Console.Write("Enter a number: "); int number = int.Parse(Console.ReadLine()); Console.WriteLine($"You entered: {number}"); } catch (FormatException) { Console.WriteLine("Invalid input!"); } finally { Console.WriteLine("This always runs (like closing files or database connections)"); } Console.WriteLine("Program ends"); --- ⏱️ قسمت 6: مثال کامل و کاربردی برنامه‌ای که سن کاربر را بگیرد و خطاها را مدیریت کند:
`
csharp using System.Text; Console.OutputEncoding = Encoding.UTF8; bool validInput = false; while (!validInput) { try { Console.Write("Enter your birth year: "); string input = Console.ReadLine(); int birthYear = int.Parse(input); int currentYear = DateTime.Now.Year; if (birthYear < 1900 || birthYear > currentYear) { Console.WriteLine("Please enter a valid year (1900 to " + currentYear + ")"); continue; } int age = currentYear - birthYear;