Struct(Struktura) – bu C# dasturlash tilida qiymat tipidagi (value type) ma’lumot tuzilmasi bo‘lib, obyekt yaratish va bir nechta o‘zgaruvchini guruhlash uchun ishlatiladi.
Struct classga o‘xshaydi, lekin u qiymat (value type) sifatida ishlaydi va tezroq ishlaydi.
Struct maydonlar (field), property’lar, konstruktorlar, metodlarni qo‘llab-quvvatlaydi.

Oddiy Structga misol

struct Point
{
    public int X;
    public int Y;

    public void ShowPoint()
    {
        Console.WriteLine($"Nuqta koordinatalari: ({X}, {Y})");
    }
}

class Program
{
    static void Main()
    {
        Point p;  // Struct yaratish
        p.X = 10;
        p.Y = 20;
        p.ShowPoint();  // Natija: Nuqta koordinatalari: (10, 20)
    }
}

Struct Konstructor bilan

struct Rectangle
{
    public double Width;
    public double Height;

    public Rectangle(double width, double height)  // Konstruktor
    {
        Width = width;
        Height = height;
    }

    public double GetArea() => Width * Height;  // Yuzani hisoblaydi

    public double GetPerimeter() => 2 * (Width + Height);  // Perimetrni hisoblaydi
}

class Program
{
    static void Main()
    {
        Rectangle rect = new Rectangle(5, 3);
        Console.WriteLine($"Yuza: {rect.GetArea()}"); // 15
        Console.WriteLine($"Perimetr: {rect.GetPerimeter()}"); // 16
    }
}

Struct cheklovlari:
Meros ola olmaydi (inheritance yo‘q).
Null bo‘la olmaydi (null qabul qilmaydi).
Default konstruktor (parametrsiz) yaratib bo‘lmaydi.

Struct – qiymat turi (value type) bo‘lib, tezroq ishlaydi va heap emas, stack xotirada saqlanadi.
Struct kichik va oddiy obyektlar uchun ishlatiladi.
class bilan solishtirganda tezroq ishlaydi, lekin kamroq imkoniyatlarga ega.