کلیدواژههای C#
کلیدواژههای C# بخش اساسی زبان سیشارپ هستند که برای تعریف ساختار و رفتار برنامه استفاده میشوند. این کلیدواژهها توسط کامپایلر به صورت خاص شناسایی شده و نقش حیاتی در کنترل جریان برنامه، تعریف انواع داده، پیادهسازی اصول شیءگرایی و مدیریت استثناها دارند. استفاده صحیح از کلیدواژهها باعث تولید کد امن، بهینه و قابل نگهداری میشود و یکی از ارکان توسعه نرمافزار حرفهای در سیشارپ به شمار میرود.
در توسعه برنامههای سیشارپ، کلیدواژهها برای تعریف متغیرها و انواع داده (مانند int، string، bool)، مدیریت جریان برنامه (if، else، switch، for، foreach، while)، پیادهسازی شیءگرایی (class، interface، abstract، virtual، override) و مدیریت خطاها (try، catch، finally) استفاده میشوند. آشنایی با کاربرد و محدودیتهای هر کلیدواژه به توسعهدهندگان کمک میکند تا از اشتباهات رایج مانند نشت حافظه، مدیریت نامناسب استثناها و الگوریتمهای ناکارآمد جلوگیری کنند.
این راهنما به شما کمک میکند تا با کلیدواژههای C# در پروژههای واقعی سیشارپ آشنا شوید، بهترین روشهای استفاده از آنها را بیاموزید و مفاهیم پیشرفتهای مانند ساختار دادهها، الگوریتمها و الگوهای طراحی را با کلیدواژهها ترکیب کنید.
مثال پایه
textusing System;
namespace CSharpKeywordsDemo
{
class Program
{
static void Main(string\[] args)
{
int number = 10; // 'int' تعریف نوع داده صحیح
string message = "نمونه استفاده از کلیدواژههای C#"; // 'string' تعریف رشته
if (number > 5) // 'if' بررسی شرط
{
Console.WriteLine(message);
}
else
{
Console.WriteLine("عدد کمتر یا مساوی 5 است.");
}
for (int i = 0; i < 3; i++) // 'for' حلقه تکرار
{
Console.WriteLine("تکرار شماره: " + i);
}
}
}
}
در این مثال، کلیدواژههای int و string برای تعریف نوع داده استفاده شدهاند. کلیدواژههای if و else برای کنترل جریان برنامه و for برای تکرار دستورات به کار رفتهاند. Console.WriteLine برای نمایش خروجی در کنسول استفاده میشود.
این کد به خوبی نشان میدهد که چگونه کلیدواژهها در تعریف متغیرها، کنترل جریان و ساختار حلقهها به کار میروند. رعایت استانداردهای سیشارپ مانند نامگذاری مناسب، مدیریت حافظه خودکار و ساختار واضح کد باعث افزایش کیفیت و قابلیت نگهداری برنامه میشود. این مثال پایهای برای درک کلیدواژهها در پروژههای پیشرفتهتر سیشارپ است.
مثال کاربردی
textusing System;
namespace CSharpKeywordsAdvanced
{
abstract class Shape // 'abstract' کلاس انتزاعی
{
public abstract double Area(); // متد انتزاعی
}
class Circle : Shape
{
private double Radius; // 'private' محدودیت دسترسی
public Circle(double radius)
{
this.Radius = radius; // 'this' ارجاع به شیء جاری
}
public override double Area() // 'override' بازنویسی متد انتزاعی
{
return Math.PI * Radius * Radius;
}
}
class Program
{
static void Main()
{
Shape circle1 = new Circle(5); // استفاده از پلیمورفیسم
try // 'try' شروع بلاک مدیریت استثنا
{
Console.WriteLine("مساحت دایره: " + circle1.Area());
}
catch (Exception ex) // 'catch' گرفتن استثنا
{
Console.WriteLine("خطا: " + ex.Message);
}
}
}
}
Advanced سیشارپ Implementation
textusing System;
using System.Collections.Generic;
namespace CSharpKeywordsEnterprise
{
interface IEmployee // 'interface' تعریف قرارداد
{
string Details();
}
class Employee : IEmployee
{
public string Name { get; set; }
public int Age { get; set; }
public Employee(string name, int age)
{
this.Name = name;
this.Age = age;
}
public string Details() => $"کارمند: {Name}, سن: {Age}";
}
class Program
{
static void Main()
{
List<IEmployee> employees = new List<IEmployee>
{
new Employee("علی", 30),
new Employee("رضا", 25)
};
foreach (var employee in employees) // 'foreach' پیمایش مجموعه
{
Console.WriteLine(employee.Details());
}
}
}
}
بهترین شیوهها در استفاده از کلیدواژهها شامل نامگذاری واضح، استفاده صحیح از محدوده دسترسی، نوعدهی ایمن و جلوگیری از نشت حافظه است. خطاهای رایج شامل استفاده نادرست از کلیدواژهها، حلقههای نامناسب و مدیریت ناکافی استثناهاست. کلیدواژهها مستقیماً روی عملکرد، امنیت و قابلیت نگهداری برنامه تاثیر میگذارند. تسلط بر آنها برای توسعه نرمافزارهای مقیاسپذیر و حرفهای در سیشارپ ضروری است.
📊 مرجع کامل
سیشارپ Element/Method | Description | Syntax | Example | Notes |
---|---|---|---|---|
abstract | تعریف کلاس یا متد انتزاعی | abstract class ClassName {} | abstract class Shape {} | قابل نمونهسازی مستقیم نیست |
as | تبدیل ایمن نوع | object as Type | obj as string | null در صورت ناموفق بودن |
base | دسترسی به اعضای کلاس پایه | base.MethodName() | base.ToString() | در ارثبری استفاده میشود |
bool | نوع داده بولی | bool flag = true; | bool active = false | true یا false |
break | قطع حلقه یا switch | break; | break; | متوقف کردن حلقه |
byte | عدد صحیح ۸ بیتی | byte b = 255; | byte age = 30; | 0–255 |
case | حالت switch | case value: | case 1: Console.WriteLine("یک"); | در switch استفاده میشود |
catch | گرفتن استثنا | catch(Exception ex) | catch(Exception ex){ } | در کنار try |
char | یک کاراکتر | char c = 'A'; | char letter = 'M'; | ذخیره یک کاراکتر |
checked | بررسی overflow | checked{ } | checked{ int x = a + b; } | ایجاد Exception در overflow |
class | تعریف کلاس | class ClassName{} | class Employee{} | پشتیبانی OOP |
const | ثابت | const int x = 5; | const double PI = 3.1415; | مقدار تغییر ناپذیر |
continue | پرش به تکرار بعدی حلقه | continue; | continue; | ادامه تکرار بعدی |
decimal | عدد اعشاری با دقت بالا | decimal d = 10.5m; | decimal price = 19.99m; | مناسب مالی |
default | حالت پیشفرض switch | default: | default: Console.WriteLine("دیگر"); | در switch |
delegate | نماینده | delegate returnType Name(); | delegate void MyDelegate(); | برای event |
do | حلقه do-while | do{}while(); | do { Console.WriteLine("سلام"); } while(i<5); | یک بار اجرا میشود |
double | عدد اعشاری دقت بالا | double d = 10.5; | double pi = 3.14159; | ۶۴ بیت |
else | شرط جایگزین | if(condition){} else{} | else { Console.WriteLine("False"); } | با if |
enum | enumeration | enum Name{ } | enum Day{Mon,Tue,Wed}; | مقادیر نامگذاری شده |
event | رویداد | event EventHandler Name; | event EventHandler OnClick; | همراه با delegate |
explicit | تبدیل صریح | explicit operator Type(){ } | public static explicit operator int(MyClass c) | تبدیل اجباری |
extern | کد خارجی | extern void Method(); | extern void Log(); | برای unmanaged code |
📊 Complete سیشارپ Properties Reference
Property | Values | Default | Description | سیشارپ Support |
---|---|---|---|---|
Access Modifiers | public, private, protected, internal | private | کنترل دسترسی | تمام نسخهها |
Data Types | int, float, double, string, bool, decimal | int | انواع متغیرها | تمام نسخهها |
Readonly | readonly | false | فیلد فقط خواندنی پس از سازنده | تمام نسخهها |
Const | const | false | ثابت زمان کامپایل | تمام نسخهها |
Static | static | false | عضو مشترک کلاس | تمام نسخهها |
Abstract | abstract | false | کلاس/متد انتزاعی | C# 1.0+ |
Virtual | virtual | false | متدی که قابل بازنویسی است | C# 1.0+ |
Override | override | false | بازنویسی متد پایه | C# 1.0+ |
Sealed | sealed | false | جلوگیری از ارثبری | C# 1.0+ |
Nullable | T? | null | پشتیبانی از نوع nullable | C# 2.0+ |
Volatile | volatile | false | بهینهسازی چندنخی | C# 2.0+ |
Unsafe | unsafe | false | اجازه عملیات با pointer | C# 2.0+ |
یادگیری کلیدواژههای C# برای نوشتن کد امن، بهینه و قابل نگهداری ضروری است. آنها کنترل جریان، ایمنی نوع و پشتیبانی از OOP را فراهم میکنند. پس از تسلط، توصیه میشود به LINQ، async/await و الگوهای طراحی پیشرفته پرداخته و پروژههای عملی انجام دهید.
🧠 دانش خود را بیازمایید
Test Your Knowledge
Test your understanding of this topic with practical questions.
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود