Олий таълим ўқув режаларидаги фанларга


Generics прототип-класслари



Download 4,03 Mb.
bet79/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   75   76   77   78   79   80   81   82   ...   102
Bog'liq
Dasturlash asoslari majmua

Generics прототип-класслари.


Прототип-класслар (generics) — булар параметр сифатида маълумот типларини қабул қилувчи класслардир. Улардан одатда маълумотларни сақлашда классларнинг контейнерлари ёки коллекциялар сифатида фойдаланиш мумкин. NET кутубхонасининг 2-версиясидан бошлаб асосий маълумот структураларини ифодалаш учун дастурлар ёрдамида стек, навбат, рўйхат, луҳат ва бошқаларни яратишда қўлланиладиган параметрлаштирилган коллекциялар жорий қилинган. Бу коллекциялар System.Collections.Generic холатлар фазосида жойлашган бўлиб, System.Collections холатлар фазосидаги коллекцияларни нусхаларини яратади. 24.4-жадвалда .NET кутубхонасининг оддий ва параметрлаштирилган коллекциялари ўртасидаги мослик баён этилган бўлиб, коллекцияларда сақланаётган маълумот типларини кўрсатувчи параметрлар бурчакли қавслар ичида кўрсатилган..

24.4-жадвал. .NET кутубхонасининг параметрлаштирилган коллекциялари

Класс-прототип (версия 2.0)

Оддий класс

Comparer

Comparer

Dictionary

HashTable

LinkedList



List

ArrayList

Queue

Queue

SortedDictionary

SortedList

Stack

Stack

Намуна тариқасида ArrayList классининг универсал нусхаси (двойниги) List ни амалда қўллашни кўрайлик. Ундан бизга яхши маълум бўлган Monster хамда Daemon класслари объектлари коллекцияларини, шунингдек бутун сонларни ҳам сақлаш учун фойдаланамиз.
24.7-листинг. универсал List коллекциясидан фойдаланиш
using System;
using System.Collections.Generic;
using System.Text;


namespace ConsoleApplication1
{
using MonsterLib; // Monster ва Daemon класслари сақланаётган кутубхона
class Program
{
static void Main()
{
List stado = new List();
stado.Add( new Monster( "Monia" ) );
stado.Add( new Monster( "Monk" ) );
stado.Add( new Daemon ( "Dimon", 3 ) );
foreach ( Monster x in stado ) x.Passport();
List lint = new List();
lint.Add( 5 ); lint.Add( 1 ); lint.Add( 3 );
lint.Sort();
int a = lint[2];
Console.WriteLine( a );
foreach ( int x in lint ) Console.Write( x + " ");
}}}
Бу дастур қуйидаги натижани беради:
Monster Monia health = 100 ammo = 100
Monster Monk health = 100 ammo = 100
Daemon Dimon health = 100 ammo = 100 brain = 3
5
1 3 5
24.7-листингда иккита коллекциялар келтирилган. Уларнинг биринчиси MonsterLib.dll кутубхонасидаги (stado) фойдаланувчи класслари элементларидан ташкил топган. Monster элементлар типи учун эълон қилинган коллекцияда полиморфизм принципига кўра иҳтиёрий ҳосила класс элементларини сақлаш мумкин, аммо бошқа типдаги элеменртларни сақлаб бўлмайди. Бундай чекловнинг афзаллиги шундаки, компилятор типларни назорат қилиши мумкин ва бу билан дастурнинг ишончлилик даражаси ортади, хатоликларни топиш осонлашади.
Бутун сонлардан иборат lint коллекциясида маълумотларни ихчамлаш ва аслига қайтариш учун амаллар ҳам, маълумотларни бир типдан икинчисига ошкор холда ўтказиш ҳам талаб қилинимайди.
Класс-прототипларни қариндош ёки шаблонли деб аталиши мумкин, чунки улар ўзи билан намуналарни мужассамлаштиради ва бу намуналар бўйича дастурнинг бажарилиши жаарёнида конкрет класслар қурилади.

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   75   76   77   78   79   80   81   82   ...   102




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