Biroq, agar biz sinfdan tashqarida sinf doimiysiga murojaat qilmoqchi bo'lsak, u xolda murojaat qilish uchun sinf nomidan foydalanishimiz kerak: Console.WriteLine(Odam.turi); // Odam Shunday qilib, agar siz butun sinfga tegishli ma'lumotlarni saqlashingiz kerak bo'lsa, doimiylardan foydalanishingiz mumkin. O'qish maydonlari va faqat o'qiladigan modifikator O'qish maydonlari sinf yoki strukturaning qiymatini o'zgartirib bo'lmaydigan maydonlarini ifodalaydi. Bunday maydonlarga qiymat e'lon qilingan vaqtda ham, konstruktorda ham berilishi mumkin. Dasturning boshqa joylarida siz bunday maydonlarga qiymat bera olmaysiz, faqat ularning qiymatini o'qishingiz mumkin. O'qish maydoni readonly kalit so'zi bilan e'lon qilinadi: class Odam { public Odam(string nomi) { } public void NomBelgilash(string BoshqaNom) { //this.nomi = BoshqaNom; // Xato. Mumkin emas! } } Odam akmal = new Odam(“Akmal"); Console.WriteLine(akmal.nomi); //akmal.nomi = “Axmad"; // Xato. O’zgartirish mumkin emas! Demak, nom maydoni foydalanuvchi nomini o'z ichiga oladi va o'qish maydonini ifodalaydi. Unga to'g'ridan-to'g'ri deklaratsiya vaqtida qiymat berilishi mumkin: Demak, nom maydoni foydalanuvchi nomini o'z ichiga oladi va o'qish maydonini ifodalaydi. Unga to'g'ridan-to'g'ri deklaratsiya vaqtida qiymat berilishi mumkin: public readonly string nomi = “Nomsiz"; Yoki konstruktorda qiymat belgilashimiz mumkin: public Odam(string nomi) { this.nomi = nomi; } Dasturning boshqa joylarida, shu jumladan Odam sinfining o'zida ham siz o'qish maydoniga qiymat bera olmaysiz.
Do'stlaringiz bilan baham: |