Interfeys toifalari tushunchasi Interfeys toifalarni abstract bazaviy sinflar bilan taqqoslash Maxsus interfeyslarni kiritish


// Xatolik! new() cheklovi ro’yhat oxirida bo’lishi shart! public class MeningUmumSinfim where T : new(), class, IDrawable { … }


Download 0.77 Mb.
bet16/50
Sana26.01.2023
Hajmi0.77 Mb.
#1129439
1   ...   12   13   14   15   16   17   18   19   ...   50
Bog'liq
MAVZULAR UMUMIY

// Xatolik! new() cheklovi ro’yhat oxirida bo’lishi shart!
public class MeningUmumSinfim where T : new(), class, IDrawable
{ … }

Bir nechta toifa parametrlariga ega bo’lgan umumlashgan kollektsiyalar sinfini yaratishda alohida where konstruktsiyalarini qo’llagan holda har bir parameter uchun unikal cheklovlar to’plamini berish mumkin:
// <К> toifa SomeBaseClass ni kengaytirishi va standart konstruktorga ega
// bo’lishi kerak
// <Т> toifa esa struktura bo’lishi va
// IComparable interfeysini realizatsiya qilishi kerak
public class MeningUmumSinfim where К : SomeBaseClass, new()
where T : struct, IComparable
{ … }

Kollektsiyaning to’la maxsus umumlashgan sinfini qurish zarurati kamdan-kam holllarda vujudga keladi: biroq where kalit so’zini umumlashgan metodlarda ishlatishga ham ijozat bor. Masalan, Almashtir() metodi faqat strukturalar bilan ishlashini ta’minlamoqchi bo’lsak, uning kodini quyidagicha o’zgartirishimiz mumkin:
// Bu metod istalgan strukturalar o’rnini almashtiradi, lekin sinflarni emas
static void Almashtir (ref Т a, ref Т b) where Т : struct
{ … }

Ta’kidlash joizki, agar Almashtir () metodi bunday tarzda cheklansa, u holda string ob’yektlari o’rnini almashtirish mumkin bo’lmay qoladi, chunki string ishoraviy toifadir. (9-bobda umumlashgan turlar bor)
Ma’ruza 04 (30)
Mavzu: Umumlashgan turlar vorisligi

Reja:

  1. Umumlashgan toifalar va ularning vorisligi

  2. Nuqta umumlashgan sinfi

  3. FNuqta umumlashgan toifasini Nuqta sinfining vorisi sifatida yaratish

  4. Nuqta va FNuqta toifalarini ishlashini namoyish etish


Umumlashgan toifalar va ularning vorisligi
Umumlashgan turlardan (toifalardan, sinflardan) voris olish ham huddi oddiy sinflardan voris olish kabi amalga oshiriladi. Bunda toifa parametrlarini to’g’ri ko’rsatish kerak bo’ladi.
Buning qanday amalga oshirilishi quyidagicha. Faraz qilaylik, UmumTur deb nomlangan bitta toifa parametriga ega bo’lgan sinf e’lon qilingan bo’lsin:

Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   ...   12   13   14   15   16   17   18   19   ...   50




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