1-Mavzu 1-Mavzu Reja: Klass a’zolariga ruxsatni boshqarish
public FailSoftArray(int size) {
Download 116.94 Kb.
|
dasturiy injinering
- Bu sahifa navigatsiya:
- 3. Avtomatik ravishda amalga oshiriladigan xususiyatlar.
public FailSoftArray(int size) {
a = new int[size]; Length = size; } // FailSoftArray sinfidagi massiv uchun int tipidagi 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; } } /* FailSoftArray sinfidagi massiv uchun yana bir indeksator. U o'zining argumentini eng yaqin butun indeksga aylantiradi. */ public int this[double idx] { // get aksessori. get { int index; // Eng yaqin butunga aylantirish. if( (idx - (int) idx) < 0.5) index = (int) idx; else, index = (int) idx + 1; if(ok(index)) { ErrFlag = false; return a[index]; } else { ErrFlag = true; return 0; } } // set aksessori. set { int index; // Eng yaqin butunga aylantirish. if( (idx - (int) idx) < 0.5) index = (int) idx; else index = (int) idx + 1; if(ok(index)) { a[index] = value; ErrFlag = false; } else ErrFlag = true; } } // Indeks belgilangan chegaralarda bo'lsa, true mantiqiy qiymatini qaytarish. private bool ok(int index) { if(index >= 0 & index < Length) return true; return false; } } // Xatoliklardan xoli massivdan foydalanish. class FSDemo { static void Main() { FailSoftArray fs = new FailSoftArrayE) ; // fs massivi qiymatlarini to`ldirish. for(int i=0; i < fs.Length; i++) fs[i] = i; // Endi massivga murojaat qilish uchun //int va double tipli indekslardan foydalaning. Console.WriteLine("fs[l]: " + fs[l]); Console.WriteLine("fs[2]: " + fs[2]); Console.WriteLine("fs[l.l]: " + fs[l.l]); Console.WriteLine("fs[1.6]: " + fs[1.6]); } } Ushbu dasturni bajarilganda quyidagi natijalar olinadi. fs[1] : 1 fs[2]: 2 fs[1.1] : 1 fs[1.6] : 2 Yuqoridagi natija shuni ko'rsatadiki, double tipli indekslar eng yaqin butun qiymatga yaxlitlanadi. Xususan, 1.1 indeksi 1ga yaxlitlandi va 1.6 indeksi 2ga. Yuqorida keltirilgan dastur indeksatorlarni qayta yuklash mumkinligini aniq ko'rsatib turibdi, ammo amalda u kamdan-kam hollarda qo'llaniladi. Odatda, buning uchun qayta yuklangan indeksatorlardan sinf ob'ektini muayyan indeks sifatida ishlatishda foydalaniladi. 3. Avtomatik ravishda amalga oshiriladigan xususiyatlar.Avtomatik ravishda amalga oshiriladigan xususiyatlar.Sinf a'zosining yana bir turi xususiyatdir. Odatda, xususiyat maydonni unga kirish usullari bilan birlashtiradi. Yuqorida keltirilgan misollarda ko'rsatilgandek, maydon ko'pincha ob'ekt foydalanuvchilari uchun mavjud bo'lish uchun yaratiladi, ammo bu sohada ruxsat etilgan operatsiyalar ustidan nazoratni saqlab qolish maqsadga muvofiqdir, masalan, ushbu sohaga tayinlangan qiymatlar oralig'ini cheklash. Bu maqsadga albatta yopiq o'zgaruvchining kirish usullari bilan erishish mumkin, ammo xususiyat bu maqsadga erishishning yanada mukammal va samaraliroq yo'lni ta'minlaydi. Download 116.94 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling