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


// ErrFlag o`zgaruvchisini xususiyatga aylantirish



Yüklə 233,68 Kb.
səhifə65/96
tarix27.07.2023
ölçüsü233,68 Kb.
#137688
1   ...   61   62   63   64   65   66   67   68   ...   96
1-Mavzu 1-Mavzu Reja Klass a’zolariga ruxsatni boshqarish-fayllar.org

// 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.
public int this[int index] {
// get aksessori.
get {
if (ok(index) ) {
ErrFlag = falser;
return a[index];
} else {
ErrFlag = true;
return 0;
}
}
// set aksessori.
set {
if(ok(index)) {
a[index] = value;
ErrFlag = false;
}
else ErrFlag = true;
}
}
// Indeks belgilangan chegaralarda bo'lsa, mantiqiy true qiymatni qaytarish.
private bool ok(int index) {
if(index >= 0 & index < Length) return true;
return false;
}
}
// Xatoliklardan xoli massivdan foydalanish.
class FinalFSDemo {
static void Main() {
FailSoftArray fs = new FailSoftArray(5);
// Использовать свойство Error.
for(int i=0; i < fs.Length + 1; i++) {
fs[i] = i*10;
if(fs.Error)
Console.WriteLine("Ошибка в индексе " + i);
}
}
}
Error xususiyatini yaratish FailSoftArray sinfida quyidagi ikkita o'zgarishga sabab bo'ldi. BirinchidanErrFlag yopiq o'zgaruvchi bo`ldi, endi unga Error xususiyati uchun asosiy saqlash joyi bo`lgani uchun to'g'ridan-to'g'ri murojaat qilib bo`lmaydi. Ikkinchidan, "faqat o'qish uchun" Error xususiyati kiritildi. Endi Error xususiyati dasturda xatolarni aniqlashni tashkil qilishga javob beradi. U yuqoridagi Main() metodida ataylab massiv chegarasini buzilgandagi xatolarni ko`rsatar edi, endi Error xususiyati bu xatolarni aniqlash uchun ishlatiladi.
C# 3.0 versiyasidan boshlab, xususiyatlar boshqaradigan o'zgaruvchini aniqlamasdan, oddiy xususiyatlarni qo'llash imkoniyati paydo bo'ldi. Buning o'rniga, xususiyat uchun asosiy o`zgaruvchi avtomatik ravishda komplyator tomonidan beriladi. Ushbu xususiyat avtomatik ravishda amalga oshiriladi va quyidagi umumiy shaklni oladi:
tip nom { get; set; }
tip xususiyatning aniq tipini bildiradinom — xususiyatga tayinlangan nom. Shuni esda saqlash kerakki, get va set aksessorlarning belgilaridan keyin darhol nuqta-vergul qo`yiladi va ularning tanasi mavjud emas. Bunday sintaksis kompilyatorga avtomatik ravishda qiymat saqlashni qo'llab-quvvatlovchi maydon deb o`zgaruvchini yaratishni belgilanadi. Bunday o`zgaruvchiga to'g'ridan-to'g'ri murofaat mavjud emas va uning nom yo'q. Lekin ayni paytda undan xususiyat orqali foydalanish mumkin.

Yüklə 233,68 Kb.

Dostları ilə paylaş:
1   ...   61   62   63   64   65   66   67   68   ...   96




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin