Member - Bu struct/class'ning a'zolariga nisbatan qo'llanadigan so'z.
Struct/classning uchta member'i bor:
- Field
 - Property
 - Method
 
1. Field:  Bu structda oddiy ichida qiymat saqlovchi o'zgaruvchi:
struct Student
{
    public string Name;  // Field
    public int Age;      // Field
}
2. Property: Field'ga qiymat saqlash uchun avvalo Property'dan o'tadi. Property get va set methodlari yordamida qiymatni olib qaytarib beradi:
struct Student
{
    private string name; //private Field
    public string Name //property
    {
        get { return name; } //getter
        set { name = value; } //setter
    }
}
3. Method: Bu ichida biror bir ishni ketma ketligini saqlaydi:
struct Student
{
    public string Name;
    public int Age;
    public void Display()  // Metod
    {
        Console.WriteLine($"Ism: {Name}, Yosh: {Age}");
    }
}
4. Constructor (Ctor): Struct/classdan obyekt ochilganda avtomatik tarzda chaqiriladigan. Biz bilgan usha oddiy method. Lekin ctorning qaytaruvchi qiymati bo'lmaydi va void ham yozilmaydi. Ctor - ctor bo'lishi uchun ochiladigan methodning nomi structning nomi bilan bir-xil bo'lishi shart!!
struct Student
{
    public string Name;
    public int Age;
    public Student(string name, int age) // Konstruktor
    {
        Name = name;
        Age = age;
    }
}
5. Readonly: Struktur Fieldlarini o‘zgartirib bo‘lmaydigan qilib e'lon qilish. Fieldni faqatgina o'qish uchun (ya'ni get uchun) cheklab qo'yadi. Shu holatda unga qiymatni faqatgina ctor'da bera olamiz:
struct Circle
{
    public readonly double Radius; //readonly
    public Circle(double radius)
    {
        Radius = radius;
    }
    public double GetArea() => Math.PI * Radius * Radius;
}
6. Method Overloading: Bu bir xil nomli bo'ladi. Lekin ichidagi parametrlari bilan farq qiladi:
struct Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
    public double Add(double a, double b)  // Parametrlari farqli
    {
        return a + b;
    }
    public int Add(int a, int b, int c)  // Parametrlari farqli
    {
        return a + b + c;
    }
}
    
Top comments (0)