DEV Community

Mushtariy
Mushtariy

Posted on

Member,Field,Property,Method(overloading,overriding),Constructor,Readonly

Member

Member - C# da member bu class yoki struct tarkibidagi element bo‘lib, u ma’lumot va funksionallikni ifodalaydi.

Member turlari

  1. Fields
  2. Properties
  3. Methods
  4. Constructor
  5. Finalizer
  6. Event
  7. Indexer
  8. Nested type
  9. Constants
  10. Operators

Misol

using System;

class Car  
{  
    // **1. Field (maydon)**  
    private string model;  

    // **2. Property (xususiyat)**  
    public string Model  
    {  
        get { return model; }  
        set { model = value; }  
    }  

    // **3. Constructor (konstruktor)**  
    public Car(string model)  
    {  
        this.model = model;  
    }  

    // **4. Method (metod)**  
    public void Honk()  
    {  
        Console.WriteLine("Beep Beep!");  
    }  

    // **5. Event (voqealar)**  
    public event Action OnStart;  

    public void Start()  
    {  
        Console.WriteLine("Mashina ishga tushdi!");  
        OnStart?.Invoke(); // Event chaqirilmoqda  
    }  

    // **6. Indexer (indeksator)**  
    private int[] speeds = new int[5];  
    public int this[int index]  
    {  
        get { return speeds[index]; }  
        set { speeds[index] = value; }  
    }  
}

class Program  
{  
    static void Main()  
    {  
        // Obyekt yaratish  
        Car myCar = new Car("Tesla");  

        // Property dan foydalanish  
        Console.WriteLine("Model: " + myCar.Model);  

        // Method chaqirish  
        myCar.Honk();  

        // Event ga hodisa qo‘shish  
        myCar.OnStart += () => Console.WriteLine("Event: Mashina harakatga tayyor!");  
        myCar.Start();  

        // Indexer orqali massivga murojaat  
        myCar[0] = 100;  
        Console.WriteLine("Birinchi tezlik: " + myCar[0]);  
    }  
}
Enter fullscreen mode Exit fullscreen mode

Natija

Model: Tesla  
Beep Beep!  
Mashina ishga tushdi!  
Event: Mashina harakatga tayyor!  
Birinchi tezlik: 100  
Enter fullscreen mode Exit fullscreen mode

Field

Field - bu class yoki struct ichida bevosita e'lon qilingan har qanday turdagi o‘zgaruvchi. Fieldlar o‘zlari joylashgan type'ning a'zolari hisoblanadi.

Misol

using System;

public class CalendarEntry
{
    private DateTime _date; // Private field

    public DateTime Date // Property with validation
    {
        get => _date;
        set
        {
            if (value.Year > 1900 && value.Year <= DateTime.Today.Year)
                _date = value;
            else
                throw new ArgumentOutOfRangeException(nameof(Date));
        }
    }

    public void SetDate(string dateString) => Date = Convert.ToDateTime(dateString);
}

class Program
{
    static void Main()
    {
        CalendarEntry entry = new CalendarEntry();
        entry.SetDate("2000-05-15");
        Console.WriteLine("Belgilangan sana: " + entry.Date.ToString("yyyy-MM-dd"));
    }
}
Enter fullscreen mode Exit fullscreen mode

Natija

Belgilangan sana: 2000-05-15
Enter fullscreen mode Exit fullscreen mode

Property

Property - bu ma’lumot maydonining (field) qiymatini o‘qish, yozish yoki hisoblash uchun ishlatiladigan a’zo (member). Propertylar jamoat (public) ma’lumot a’zolari kabi ko‘rinadi, lekin aslida maxsus metodlar (accessors) yordamida amalga oshiriladi.

Misol

using System;

public class Person
{
    public string? FirstName; // Public field
}

class Program
{
    static void Main()
    {
        Person person = new Person();
        person.FirstName = "Ali";
        Console.WriteLine("Ism: " + person.FirstName);
    }
}
Enter fullscreen mode Exit fullscreen mode

Natija

Ism: Ali
Enter fullscreen mode Exit fullscreen mode

Method

Method - Method – bu bir nechta operatorlarni o‘z ichiga olgan kod blokidir. Dastur metodni chaqirish (call) orqali undagi operatorlarni bajaradi va agar kerak bo‘lsa, argumentlarni uzatadi.C# da har bir bajariladigan buyruq biror metod kontekstida ishlaydi. Metodlar dastur logikasini modullarga ajratish, qayta ishlatish, va tartibli kod yozish uchun ishlatiladi.

Polymorphism — bu "ko‘p shakllilik" degan ma’noni anglatadi. Poly — "ko‘p", morph — "shakl" degan ma’noni bildiradi.
Polymorphism obyektga yo‘naltirilgan dasturlashning (OOP) asosiy tamoyillaridan biri bo‘lib, bir xil nomli metodlarni turli ko‘rinishda yaratish imkonini beradi. Bu metodlar bir xil class ichida turli imzoga ega bo‘lishi yoki merosxo‘r (derived) classlarda qayta yozilishi mumkin.

Polymorphism turlari

  1. Method Overloading (Metod yuklanishi) – Bir class ichida bir xil nomli, lekin turli parametrlar bilan e’lon qilingan metodlar.
  2. Method Overriding (Metodni qayta yozish) – Merosxo‘r class o‘zida ota classdagi metodni qayta aniqlaydi.

Misol(Overloading)

class MathOperations
{
    public int Add(int a, int b) => a + b;
    public double Add(double a, double b) => a + b;
}

class Program
{
    static void Main()
    {
        MathOperations math = new MathOperations();
        Console.WriteLine(math.Add(2, 3));   // 5
        Console.WriteLine(math.Add(2.5, 3.5)); // 6.0
    }
}
Enter fullscreen mode Exit fullscreen mode

Natija

5  
6.0  
Enter fullscreen mode Exit fullscreen mode

Misol(Overriding)

class Animal
{
    public virtual void MakeSound() => Console.WriteLine("Hayvon ovoz chiqardi");
}

class Dog : Animal
{
    public override void MakeSound() => Console.WriteLine("It: Vov-vov!");
}

class Program
{
    static void Main()
    {
        Animal myPet = new Dog();
        myPet.MakeSound(); // It: Vov-vov!
    }
}
Enter fullscreen mode Exit fullscreen mode

Natija

It: Vov-vov!  
Enter fullscreen mode Exit fullscreen mode

Constructor

Constructor - bu class yoki struct'ning obyektini yaratishda avtomatik chaqiriladigan maxsus metod.Class yoki struct turli argumentlar qabul qiluvchi bir nechta konstruktorlarga ega bo‘lishi mumkin.Konstruktorlar obyekt yaratishda boshlang‘ich qiymatlarni to‘g‘ri sozlash va obyektni yaroqli holatda yaratish imkonini beradi.

Misol

using System;

public class Person
{
    private string last;
    private string first;

    public Person(string lastName, string firstName)
    {
        last = lastName;
        first = firstName;
    }

    public void Display()
    {
        Console.WriteLine($"Ism: {first}, Familiya: {last}");
    }
}

class Program
{
    static void Main()
    {
        Person person = new Person("Aliyev", "Javohir");
        person.Display();
    }
}
Enter fullscreen mode Exit fullscreen mode

Natija

Ism: Javohir, Familiya: Aliyev
Enter fullscreen mode Exit fullscreen mode

Readonly

Readonly - .NET dasturlash tilida readonly kalit so‘zi o‘zgaruvchilar va xususiyatlarning qiymatini o‘zgartirishni cheklash uchun ishlatiladi. U maydonlar (fields) va xususiyatlar (properties) uchun qo‘llaniladi.

Readonly xususiyatlari

  1. Faqat e’lon qilinganda yoki konstruktor ichida o‘rnatiladi.
  2. Dastur ishlash vaqtida o‘zgartirib bo‘lmaydi.
  3. const dan farqli ravishda runtime (ishlash vaqti) da o‘rnatilishi mumkin.

Misol

using System;

class Car
{
    public readonly string Model;

    public Car(string model)
    {
        Model = model; // Faqat konstruktor ichida o‘rnatish mumkin
    }

    public void Display()
    {
        Console.WriteLine($"Car model: {Model}");
    }
}

class Program
{
    static void Main()
    {
        Car myCar = new Car("Tesla Model S");
        myCar.Display();

        // myCar.Model = "BMW"; // Xato: readonly maydonni o‘zgartirib bo‘lmaydi!
    }
}
Enter fullscreen mode Exit fullscreen mode

Natija

Car model: Tesla Model S
Enter fullscreen mode Exit fullscreen mode

Top comments (0)