Aida-Hagh / C-Sharp

Learn C#
1 stars 0 forks source link

Difference Between Class & Struct #18

Open Aida-Hagh opened 5 months ago

Aida-Hagh commented 5 months ago

ساختارها (Structs) و کلاس ها(Classes):

ساختارها برای داده‌های کوچک و ساده( مانند نقاط مختصات، رنگ‌ها، و اندازه‌ها) استفاده میشود و نال پذیر نیستند چون value Type (نوع مقداری) هستند(معمولا در استک (Stack) ذخیره می‌شوند) ولی کلاس ها نال پذیرند و Reference Types هستند(در هیپ ذخیره می‌شوند). ساختارها نمی‌توانند از دیگر ساختارها یا کلاس‌ها ارث‌بری کنند، اما می‌توانند واسط‌ها (interfaces) را پیاده‌سازی کنند. کلاس‌ها می‌توانند از دیگر کلاس‌ها ارث‌بری کنند و از قابلیت‌های ارث‌بری و چندریختی (polymorphism) استفاده کنند.

Aida-Hagh commented 5 months ago

struct Point {

public int X { get; set; }
public int Y { get; set; }

}

class Circle {

    public Point Center { get; set; }
    public int Radius { get; set; }
    public Circle(int x, int y, int radius)
    {
        Center = new Point { X = x, Y = y };
        Radius = radius;
    }

public void Display()
{
    Console.WriteLine($"Center: ({Center.X}, {Center.Y}), Radius: {Radius}");
}

}

class Program {

static void Main()
{
    Circle circle = new Circle(5, 10, 15);
    circle.Display();
}

}


در این مثال، از ساختار Point برای تعریف نقاط مختصات و از کلاس Circle برای تعریف دایره‌ها استفاده شده است. ساختار Point برای داده‌های ساده و کلاس Circle برای داده‌های پیچیده‌تر استفاده می‌شود.