DEV Community

madina1575
madina1575

Posted on

Struct

Bugungi gaplashadigan mavzuyimiz ko'rib turganingizday struct.

C# dasturlash tilida struct - bu ma'lumotlar tuzilmasi bo‘lib, u bir nechta o‘zgaruvchilarni bitta birlik sifatida guruhlash uchun ishlatiladi.U huddi classga o'xshaydi, lekin structning qiymat turi value type bo'lsa, classniki reference type bo'ladi.
Member - bu struct/classning a'zolariga nisbatan qo'llanadigan so'z.
Struct/Classning 3 ta memberi bor:

  1. Field
  2. Property
  3. Method
  • Field: Biz bilgan oddiy ichida qiymat saqlovchi o'zgaruvchi deyish mumkin;

  • Property: Darvoza(Kirish eshigi) - ya'ni Fieldga qiymat saqlash uchun avvalo Propertydan o'tadi;

  • Method: Biz bilgan o'sha funksiya, ammo struct/classning ichida method deb nomlanadi;

Struct ichida constructor ochish imkoniga egasiz!
Constructor(ctor): Struct/classdan qandaydir bir obyekt(jism) ochilganda avtomatik tarzda chaqiriladigan biz bilgan o'sha oddiy method.

Ctorning qaytaruvchi qiymati bo'lmaydi! Shuningdek voidham deb yozilmaydi!
Ctor- ctor bo'lishi uchun ochiladigan methodning nomi structning nomi bilan bir xil bo'lishi shart.

Structda "this" kalit so'zi bor va u boshqa ctorni chaqirish uchun ishlatiladi.

Bundan tashqari readonly kalit so'zi ham ko'p martalab ishlatiladi.
Readonly: Fieldni faqatgina o'qish uchun (ya'ni getuchun) cheklab qo'yadi.Bu holatda unga qiymatni faqat ctorni ichida(ctorda) bera olamiz.

public struct Circle
{
    private int radius;

    public int Radius
    {
        get => radius;
        set
        {
            if(value > 0)
            {
                radius = value;
            }
            else
            {
                throw new Exception("Doira radiusi 0 ga teng yoki 0 dan kichik bo'lishi mumkin emas!");
            }
        }
    }

    public Circle(int radius)
    {
        Radius = radius;
    }

    public double GetArea() => radius * radius * Math.PI;

    public double GetCircumference() => 2 * radius * Math.PI;

    public void Print() => Console.WriteLine($"Doiraning yuzi: {GetArea()} \nDoiraning uzunligi: {GetCircumference()}");

    public override string ToString()
    {
        return $"Doiraning yuzi: {GetArea()} \nDoiraning uzunligi: {GetCircumference()}";
    }
}
Enter fullscreen mode Exit fullscreen mode

Yana public va private kalit so'zlari mavjud.

  • Private - faqat struct ichida ko'rinadi.

  • Public - esa struct tashqarisida ham method sifatida ishlatilishi mumkun va ko'rinadi.

Koddagi Math.PImethodi esa matematik pini ya'ni 3,14 yaki 22/7 ni beradi;

Top comments (0)