4-Mavzu: Konstanta maydonlar. Qism sinflar. Reja Konstanta maydonlar O'qish maydonlari


Download 27.76 Kb.
bet2/3
Sana18.06.2023
Hajmi27.76 Kb.
#1581384
1   2   3
Bog'liq
4-Mavzu Konstanta maydonlar. Qism sinflar

2. O'qish maydonlari.
O'qish maydonlari sinf darajasida e'lon qilinganida yoki konstruktorda ishga tushirilishi va o'zgartirilishi mumkin. Siz ularning qiymatini boshqa joyda o'zgartira olmaysiz yoki o'zgartira olmaysiz, faqat ularning qiymatini o'qishingiz mumkin.
O'qish maydoni readonly kalit so'z bilan e'lon qilinadi:
class MathLib
{
public readonly double K = 23; // shunday tartibda initsializatsiya qilish mumkin
public MathLib(double _k)
{
K = _k; // o'qish maydoni kompilyatsiya qilinganidan keyin konstruktorda ishga tushirilishi yoki o'zgartirilishi mumkin
}
public void ChangeField()
{
// buni bunday qilolmaysiz
//K = 34;
}
}
class Program
{
static void Main(string[] args)
{
MathLib mathLib = new MathLib(3.8);
Console.WriteLine(mathLib.K); // 3.8
//mathLib.K = 7.6; // o'qish maydonini o'z sinfidan tashqarida o'rnatish mumkin emas
Console.ReadLine();
}
}


Konstantalarni solishtirish.

  • Konstantalar kompilyatsiya vaqtida, o'qilishi mumkin bo'lgan maydonlar esa bajarish vaqtida aniqlanishi kerak.

  • Shunga ko'ra, konstantani faqat u aniqlanganda boshlash mumkin.

  • O'qish maydoni aniqlanganda yoki sinf konstruktorida ishga tushirilishi mumkin.

  • Konstantalar static modifikatoridan foydalana olmaydi, chunki ular allaqachon statik. O'qish maydonlari statik yoki statik bo'lmagan bo'lishi mumkin.

O`qish uchun struktura
O'qiladigan maydonlardan tashqari, C# o'qiladigan tuzilmalarni ham aniqlay oladi. Buning uchun ulardan oldin readonly modifikatori keladi:
readonly struct User { }

Bunday tuzilmalarning o'ziga xos xususiyati shundaki, ularning barcha maydonlari o'qiladigan maydonlar bo'lishi kerak:


readonly struct User
{
public readonly string name;
public User(string name)
{
this.name = name;
}
}

Xuddi shu narsa faqat o'qilishi kerak bo'lgan xususiyatlarga ham tegishli:


readonly struct User
{
public readonly string Name { get; } // readonly ixtiyoriy
public int Age { get; } // faqat o'qish uchun mo'ljallangan xususiyat
public User(string name, int age)
{
this.Name = name;
this.Age = age;
}
}



Download 27.76 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling