C# kirish modifikatorlari


ULASHISH

Kirish modifikatorlari

Hozirga kelib ko‘plab misollarimizda uchraydigan public kalit so‘zi bilan ancha tanish bo‘lib qoldingiz:

public string color;

public kalit so‘zi kirish modifikatori bo‘lib, sinflar, maydonlar, metodlar va xususiyatlar uchun kirish darajasini/ko‘rinuvchanligini belgilashda ishlatiladi.

C# da quyidagi kirish modifikatorlari mavjud:

Modifikator Tavsif
public Kod barcha sinflar uchun ochiq
private Kodga faqat shu sinf ichida murojaat qilish mumkin
protected Kodga shu sinf ichida yoki shu sinfdan meros olgan sinfda murojaat qilish mumkin. Vorislik haqida keyingi boblarda batafsil bilib olasiz
internal Kodga faqat o‘z yig‘masi (assembly) ichida murojaat qilish mumkin, boshqa yig‘madan esa mumkin emas. Bu haqda keyingi boblarda batafsil bilib olasiz

Shuningdek, ikkita birikma ham mavjud: protected internal va private protected.

Hozircha public va private modifikatorlariga e’tibor qaratamiz.


private modifikatori

Agar maydonni private kirish modifikatori bilan e’lon qilsangiz, unga faqat shu sinf ichida murojaat qilish mumkin:

Misol

class Car
{
  private string model = "Mustang";

  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Natija quyidagicha bo‘ladi:

Mustang

O‘zingiz sinab ko‘ring »

Agar unga sinfdan tashqarida murojaat qilishga urinsangiz, xato yuz beradi:

Misol

class Car
{
  private string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Natija quyidagicha bo‘ladi:

'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used

O‘zingiz sinab ko‘ring »



public modifikatori

Agar maydonni public kirish modifikatori bilan e’lon qilsangiz, u barcha sinflar uchun ochiq bo‘ladi:

Misol

class Car
{
  public string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

Natija quyidagicha bo‘ladi:

Mustang

O‘zingiz sinab ko‘ring »


Nega kirish modifikatorlari kerak?

Sinf a’zolarining ko‘rinuvchanligini (har bir alohida sinf va sinf a’zosining xavfsizlik darajasini) boshqarish uchun.

"Inkapsulyatsiya"ga erishish uchun — bu "maxfiy" ma’lumotlarning foydalanuvchilardan yashirilishini ta’minlash jarayoni. Bunga maydonlarni private deb e’lon qilish orqali erishiladi. Bu haqda keyingi bobda batafsil bilib olasiz.

Eslatma: Agar kirish modifikatorini ko‘rsatmasangiz, sinfning barcha a’zolari sukut bo‘yicha private bo‘ladi:

Misol

class Car
{
  string model;  // private
  string year;   // private
}


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!