1-Mavzu 1-Mavzu Reja: Klass a’zolariga ruxsatni boshqarish


// FailSoftArray sinfi uchun indeksator


Download 111.72 Kb.
bet62/96
Sana29.03.2023
Hajmi111.72 Kb.
#1307438
1   ...   58   59   60   61   62   63   64   65   ...   96
Bog'liq
1-Mavzu 1-Mavzu Reja Klass a’zolariga ruxsatni boshqarish

// FailSoftArray sinfi uchun indeksator.
public int this[int index] {
// get aksessori.
get {
if(ok(index)) {
ErrFlag = false;
return a[index];
} else {
ErrFlag = true;
return 0;
}
}
// set aksessori.
set {
if(ok(index)) {
a[index] = value;
ErrFlag = false;
}
else ErrFlag = true;
}
}
// Agar indeks belgilangan chegaralarda bo'lsa, mantiqiy true qiymatini qaytarish
private bool ok(int index) {
if(index >= 0 & index < Length) return true;
return false;
}
}
// Xatolardan xoli massivdan foydalanish.
class ImprovedFSDemo {
static void Main() {
FailSoftArray fs = new FailSoftArrayE);
int x;
// Length xususiyatiga o`qishga ruxsat berish
for(int i=0; i < fs.Length; i++)
fs[i] = i*10;
for(int i=0; i < fs.Length; i++) {
x = fs[i];
if(x != -1) Console.Write(x + " ");
}
Console.WriteLine() ;
// fs.Length = 10; // Xatolik, qiymat berish taqiqlangan!
}
}
Endi Length-bu saqlash joyi yopiq len o'zgaruvchisi bo'lgan xususiyatdir. Bu xususiyat get accessor tomonidan aniqlanganligi sababli, uni faqat o`qish mumkin. Bu Length xususiyatining qiymati faqat o'qilishi mumkin, ammo o'zgartirilmasligini anglatadi. Buni tekshirish uchun yuqoridagi kodni quyidagi satrning boshidagi sharh belgilarini olib tashlang.
// fs.Length = 10; // Xatolik, ro'yxatga olish taqiqlangan!
Agar siz ushbu kodni kompilyatsiya qilmoqchi bo'lsangiz, Length faqat o'qish uchun mavjud bo'lgan xususiyat ekanligini bildiradigan xatolik xabari olasiz. FailSoftArray sinfidagi Length xususiyatini qo'shish xususiyatlari yordamida kod namunasini takomillashtirishni ko`rib chiqish hali tugamadi. Sinfning yana bir xususiyatga aylantirilgan a'zosi ErrFlag o`zgaruvchisi faqat o`qish uchun xizmat qiladi. Quyida FailSoftArray sinfining Error xususiyati yaratish orqali ErrFlag asl yopiq o'zgaruvchisidan uning ma'lumotlarini saqlash uchun foydalanish maqsadida takomillashtirilgan versiyasi keltirilgan.
// ErrFlag o`zgaruvchisini xususiyatga aylantirish.
using System;
class FailSoftArray {
int[] a; // asosiy massivga havola
int len; // massiv uzunligi
bool ErrFlag; // bu oxirgi operatsiya natijasini
//ko'rsatuvchi xususiy o'zgaruvchi
// Berilgan o`lchamda massiv yaratish
public FailSoftArray(int size) {
a = new int[size];
len = size;
}
// Faqat o'qish uchun Length xususiyati
public int Length {
get {
return len;
}
}
// Faqat o'qish uchun Error xususiyati.
public bool Error {
get {
return ErrFlag;
}
}
// FailSoftArray sinf uchun indeksator.

Download 111.72 Kb.

Do'stlaringiz bilan baham:
1   ...   58   59   60   61   62   63   64   65   ...   96




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