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


MeningUmumMetodlarim с = new MeningUmumMetodlarim (); с. Almashtir (ref a, ref b)


Download 0.77 Mb.
bet13/50
Sana26.01.2023
Hajmi0.77 Mb.
#1129439
1   ...   9   10   11   12   13   14   15   16   ...   50
Bog'liq
MAVZULAR UMUMIY

MeningUmumMetodlarim с = new MeningUmumMetodlarim ();
с. Almashtir (ref a, ref b) ;

Maxsus umumlashgan strukturalar va sinflarni yaratish
Umumlashgan metodlarni aniqlash va chaqirish qanday bo’lishini bilib oldingiz, endi yangi UmumiyNuqta konsol ilovasi loyihasida umumlashgan strukturani qurishga (umumlashgan sinfni qurish ham ayni usulda bajariladi) diqqat-e’tiborimizni qaratamiz. Faraz qilaylik, siz (x, y) koordinatalarni ifodalash uchun bitta toifa parametrini qo’llovchi Nuqta degan umumlashgan struktura yaratdingiz. Keyin chaqiruvchi kod Nuqta toifalarini yaratishi mumkin:
// Toifasi int bo’lgan koordinatalarga ega nuqta
Nuqta р = new Nuqta (10, 10);

// Toifasi double bo’lgan koordinatalarga ega nuqta.
Nuqta р2 = new Nuqta (5.4, 3.3);

Umumlashgan Nuqta strukturasining to’la aniqlanishi quyidagicha bo’ladi:
// Umumlashgan Nuqta strukturasi
public struct Nuqta {
// Umumlashgan holat ma’lumotlari
private Т xPos; private Т yPos;
// Umumlashgan konstruktor
public Nuqta (Т x, Т y) {
xPos = x; yPos = y;
}
// Umumlashgan xossalar
public T X {
get { return xPos; } set { xPos = value; }
}
public T Y {
get { return yPos; } set { yPos = value; }
}
public override string ToString() => $"[{xPos), {yPos}]";
// Maydonlarni standart qiymatlarga qaytarish berilgan toifa parametri uchun
public void ResetNuqta() {
xPos = default(T) ; yPos = default (T);
}
}

Umumlashgan kodda default kalit so’zi
Ko’rib turibsizki, Nuqta strukturasi toifa parametrini ma’lumotlar maydonlarini, konstruktor argumentlarini va xossalarni aniqlashda ishlatadi. Nuqta strukturasi ToString() metodini qayta aniqlashdan tashqari, ResetNuqta() degan metodni ham aniqlamoqda, buning uchun oldin uchramagan yangi sintaksisni qo’llamoqda:
// C# tilidagi default kalit so’zi peregruzka qilingan
// Umumlashmalardan foydalanishda u
// toifa parametri uchun standart qiymatni taqdim etadi
public void ResetNuqta()
{ X = default(T); Y = default(T); }

Umumlashmalar paydo bo’lishi bilan default kalit so’zi ikki mohiyatga ega bo’lib qoldi. Endi u switch konstruktsiyasi ichida ishlatilishdan tashqari, toifa parametrining standart qiymatini o’rnatish uchun ham qo’llanadi. Bu juda qulay, chunki to’ldiruvchilar o’rniga qo’yiladigan haqiqiy toifalar umumlashgan toifaga oldindan ma’lum emas, shu sabbali u standart qiymatlar qanday bo’lishini havfsiz tartibda oldindan bilmaydi. Toifa parametrlari quyidagi qoidalarga amal qiladi:

  • sonli toifalarning standart qiymati 0;

  • ishoraviy toifalarning standart qiymati null;

  • strukturalarninhg maydonlari 0 ga (qiymat toifalar uchun) yoki null ga (ishoraviy toifalar uchun) o’rnatiladi.


Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   ...   9   10   11   12   13   14   15   16   ...   50




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