Mavzu: Umumlashgan delegatlar, interfeyslar. Reja



Download 58 Kb.
bet1/2
Sana22.07.2022
Hajmi58 Kb.
#839322
  1   2
Bog'liq
Mavzu Umumlashgan delegatlar, interfeyslar. Reja


Mavzu: Umumlashgan delegatlar, interfeyslar.
Reja:

  1. Umumlashgan delegatlar.

  2. Umumlashgan interfeyslar.

1. Umumlashgan delegatlar
Xuddi metodlar kabi delegatlar ham umumlashgan bo`lishi mumkin. Pastda umumlashgan delegatni aniqlashning umumiy shakli keltirilgan.
delegate qaytariluvchi_natija_tipi delegate_nomi
(argumentlar_ro_yxati)

Parametrlar tiplari ro'yxatining joylashishiga e'tibor bering. U delegat nomidan keyin to'g'ridan-to'g'ri keladi. Umumlashgan delegatlarning afzalligi shundaki, ular keyinchalik har qanday ular bilan bir xil tipda aniqlangan umumlashgan metod bilan mos kelishi mumkin.
Quyidagi misolida T tipli bitta parametrga SomeOp delegatining qo'llanilishinikeltirilgan. Ushbu delegat T tipdagi qiymatni qaytaradi va T tipda argument qabul qiladi.
// delegatga oddiy misol.
using System;
// umumlashgan delegatning e`lon qilinishi,
delegate T SomeOp(T v);
class GenDelegateDemo {
// argument yig`indisini qaytarish,
static int Sum(int v) {
int result = 0;
for(int i=v; i>0; i--)
result += i;
return result;
}
// berilgan argumentning teskari tartibidan hosil bo`lgan satrni qaytarish
static string Reflect(string str) {
string result = "";
foreach(char ch in str)
result = ch + result;
return result;
}
static void Main() {
// int tipidagi delegatni tuzish.
SomeOp intDel = Sum;
Console.WriteLine(intDelC));
// string tipidagi delegatni tuzish.
SomeOp strDel = Reflect;
Console.WriteLine(strDel("Привет") ) ;
}
}
Ushbu dastur quyidagi natijani beradi.
6
тевирП
Keling, ushbu dasturni batafsil ko'rib chiqaylik. Avvalo, SomeOp delegatining keyingi e'loniga e'tibor beraylik.
delegate T SomeOp(T v);
Ko'rib turganidek, SomeOp delegate nomidan keyinturgan bo`lsada T tip qaytariluvchi natijaning tipi hisoblanadi.
Bundan tashqari, GenDelegateDemo sinfida quyida ko'rsatilganidek, Sum() va Reflect() metodlari e'lon qilgan.
static int Sum(int v) {
static string Reflect(string str) {
Sum() metodi argument sifatida uzatilgan butun qiymatga mos yig`indini natija sifatida qaytaradi, va Reflect() metodi— argument sifatida uzatilgan belgili qatorni teskarisiga aylantiradi.
Main() metodida Sum() metodiga havola berilgan delegatning intDel nusxasi yaratiladi.
SomeOp intDel = Sum;
Sum() metodi int tipidagi argument qabul qiladi va shu tipda qiymat qaytaradi, shuning uchun u SomeOp delegatning butun tipli nusxasi bilam mos mos tushadi.
Xuddi shunday, Reflect() metodiga havola berilgan delegatning strDel misoli ham yaratiladi.
SomeOp strDel = Reflect;
Reflect() metodi string tipidagi argument qabul qiladi va shu tipda qiymat qaytaradi, shuning uchun u SomeOp delegatning butun tipli nusxasi bilam mos mos tushadi.
Umumiy xavfsizlikka xos umumlashmalarda ham umumlashgan delegatlarga mos kelmaydigan metodlar berilmaydi. Shunday qilib, kodning keyingi satrida ko'rib chiqilayotgan dasturda xatolik bor.
SomeOp intDel = Reflect; // Xatolik!
Axir, Reflect() metodi argument sifatida string tipida qiymat qabul qiladi va shu tipda natija qaytaradi, shuning uchun SomeOp delegatga butun tip mos kelmaydi.

Download 58 Kb.

Do'stlaringiz bilan baham:
  1   2




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish