CodeShot
C#2 دقیقه مطالعه

C# چیست؟

زبان برنامه‌نویسی شی‌گرا، مدرن و Strongly Typed مایکروسافت برای ساخت برنامه‌های وب، دسکتاپ، موبایل و Cloud روی .NET.

چرا مهم است؟

C# زبان اصلی اکوسیستم .NET است؛ تسلط بر Syntax، Type System و OOP آن پیش‌نیاز یادگیری ASP.NET Core، EF Core و تقریباً هر فناوری دیگر بک‌اند مایکروسافت است.

تعریف کوتاه

C# زبانی شی‌گرا، مدرن و Strongly Typed از مایکروسافت است که برای وب، دسکتاپ، موبایل، بازی و سرویس‌های Cloud روی پلتفرم .NET استفاده می‌شود.

ویژگی‌های کلیدی

  • Object-Oriented — Class، Object، Inheritance، Encapsulation، Polymorphism، Abstraction
  • Strongly Typed — نوع متغیرها در Compile Time بررسی می‌شود و بسیاری از خطاها زودتر پیدا می‌شوند
int age = 25;
string name = "Ali";

انواع داده (Value vs Reference)

Value Type Reference Type
مقدار واقعی را نگه می‌دارد (int, double, bool, struct, enum) آدرس شیء را نگه می‌دارد (class, string, array, interface)

کلاس، شیء و Constructor

class Person
{
    public string Name { get; set; }

    public Person()
    {
        Console.WriteLine("Created");
    }
}

Person p = new Person { Name = "Ali" };

Access Modifiers

Modifier دسترسی
public همه‌جا
private فقط داخل همان کلاس
protected کلاس و فرزندانش
internal داخل همان Assembly

چهار اصل OOP

Encapsulation (مخفی‌کردن جزئیات با Property) · Inheritance (class Dog : Animal) · Polymorphism (Animal a = new Dog();) · Abstraction (abstract class Shape { public abstract void Draw(); })

Interface

interface ILogger
{
    void Log(string message);
}

کاربرد اصلی: Dependency Injection، تست‌نویسی و معماری Clean Architecture.

Exception Handling

try { int x = 10 / 0; }
catch (Exception ex) { Console.WriteLine(ex.Message); }
finally { }

Collections

Array (اندازه ثابت) · List<T> (لیست پویا) · Dictionary<TKey,TValue> (کلید/مقدار)

مفاهیم پیشرفته‌تر (هرکدام یک موضوع مستقل)

LINQ برای Query روی Collectionها · Delegate/Lambda برای اشاره به متد و توابع کوتاه · Async/Await برای برنامه‌نویسی غیرهمزمان · Nullable Types (int? age = null;) · Record برای مدل‌های Immutable (public record Person(string Name, int Age);) · Pattern Matching (if (obj is string text) {...})

Garbage Collector

C# دارای Garbage Collector است که Objectهای بدون Reference را شناسایی و حافظه‌شان را آزاد می‌کند.

تفاوت‌های پرتکرار

class vs struct Class روی Heap و Reference Type است؛ Struct معمولاً روی Stack و Value Type و مناسب داده‌های کوچک
Interface vs Abstract Class Interface فقط قرارداد است و چند Interface هم‌زمان ممکن است؛ Abstract Class قرارداد + پیاده‌سازی دارد ولی فقط یک Base Class مجاز است
string vs StringBuilder string Immutable است و هر تغییر یک Object جدید می‌سازد؛ StringBuilder برای تغییرات زیاد متن مناسب‌تر است

نکته کلیدی: C# زبان اصلی اکوسیستم .NET است — پایه یادگیری ASP.NET Core، EF Core و اکثر فناوری‌های دیگر همین Syntax، Type System و اصول OOP است.

خلاصه

  • C# زبانی شی‌گرا و Strongly Typed از مایکروسافت برای ساخت انواع برنامه روی .NET است.
  • Value Type مقدار را نگه می‌دارد و روی Stack قرار می‌گیرد؛ Reference Type آدرس شیء را نگه می‌دارد و روی Heap است.
  • OOP (Encapsulation، Inheritance، Polymorphism، Abstraction)، Interface و Exception Handling ستون‌های اصلی نوشتن کد C# هستند.

حالا امتحان کن

🧩آزمون C# چیست؟6 سؤال · نمره قبولی 60٪
این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←