MA’RUZA
MASHG’ULOTI
MAVZULARI
1-MAVZU: C# TILIDA UMUMLASHTIRISH, UMUMLASHGAN METOD YARATISH.
MA’RUZA MASHG’ULOTI REJASI:
1. Umumlashtirishlar.
2. C# ni C++ shablonlariga nisbatan umumlashtirish.
3. Umumlashtirilgan sinflarni ma’lum qilish.
Tayanch so`z va iboralar: sinflar, metodlar, hususiyatlar, operatorlar, inkriment, dekriment, birlamchi, unar va o’zgartirish ifodalari, o`zgaruvchilar, parametrlar, integer, bool, null, double, o`zgartirishlar, kalit so`zlar.
1. Umumlashtirishlar.
Nishab, kutupluluk, parametrizatsiya turi. Odatiy rol parametri shablonni o'rnatish, uni sinfga, tuzilishga, interfeysga, usulga va vizordagi vakilga mos keladigan tarzda sozlashdir. Odatiy qora uchun odatiy, odatiy, avtomatik ravishda yuklangan uslublar jadvalini olish uchun bu erni bosing. Sinf, tuzilish, interfeys, usul, vakolat, ishlaydigan parametrlar - dinamik tip, do'zax, qo'shish, kuzatish, sinf, birgalikda.
Sleduet standart ob'ekt kodi bo'lgan operatsiya turi ob'ekti bo'lgan C # ko'rinishida matn yaratadi. Poster sinf ob'ekti birinchi sinf ob'ekti uchun standart ob'ekt bo'lib, u lubogo tipidagi ob'ekt hisoblanadi. Bu dasturdagi ob'ekt turi.
Hech qanday fon dizayni, oldindan buyurtma qilingan ob'ekt va o'ziga xos turisiz kodni o'chirish, ko'rish va kiritish mumkin emas. Mumkin bo'lgan manba bir yildan ko'proq vaqt turadi, shuning uchun siz moglo bayt neumo neverno turini ko'rishingiz mumkin. Bular imtiyozli belgilar bo'lib, ular ilgari yo'q edi. Tanlanganlarga qo'shish Rasmni yuklab oling
---------------------------------
eslatma
Ko'rish uchun C ++ va Java dasturchisi talab qilinadi, C # ne tugmachasini bosing, so'ngra shablonlarni C ++ -ga o'rnating va Java-da, pochta indeksida, turli xil xotiralarda va halok bo'lgan vositalarda kanalni oching. B Yetim Tremor Agar dasturni C ++ yoki Java-da saqlamoqchi bo'lsangiz, odatiy ko'rinishda oldinga va orqaga o'ting.
---------------------------------
Biz umumlashmalarning muhokamasini oddiy Primera Umumlashtirilgan sinfidan boshlaymiz. Yuqoridagi dasturda dastur ikkita sinf tomonidan belgilanadi. Gen, sinf - GenericsDemo, Gen sinf foydalanadigan sinf.
// Umumiy sinfning oddiy namunasi,
Tizimdan foydalanish;
// Quyidagi Gen sinfida T tipidagi parametr o'zgartiriladi
// Gen. tipidagi ob'ektni yaratishda haqiqiy ma'lumotlar turi.
sinf Gen {
T ob; // T tipidagi o'zgaruvchini e'lon qilish
// Ushbu konstruktorda mavjudligiga e'tibor bering
// T tipidagi parametr mavjud
ommaviy Gen (T o) {
ob = o;
}
// misol o'zgaruvchisini qaytaring ob,
// T tipidagi.
umumiy T GetOb () {
qaytish ob;
}
// T turini ko'rsatish.
ommaviy bo'shliq ShowType () {
Console.WriteLine ("T turi tegishli" + tipof (T));
}
}
// Umumiy sinfdan foydalanishni namoyish qiling,
sinf GenericsDemo {
statik bo'shliq Main () {
// Gen tipidagi ob'ekt uchun mos yozuvlar o'zgaruvchisini yaratish int.
Gen iOb;
// Gen va ob'ekt turini yarating
// o'zgaruvchiga unga havolani tayinlash
iOb = yangi Gen (102);
// iOb o'zgaruvchisida saqlanadigan ma'lumot turini ko'rsating.
iOb.ShowType ();
// iOb o'zgaruvchisining qiymatini oling.
int v = iOb.GetOb ();
Console.WriteLine ("Qiymat:" + v);
Console.WriteLine ();
// Satrlar uchun Gen turidagi ob'ektni yarating.
Gen strOb = yangi Gen ("Umumiylashtirish samaradorlikni oshiradi.");
// strOb o'zgaruvchisida saqlanadigan ma'lumot turini ko'rsating.
strOb.ShowType ();
// strOb o'zgaruvchisining qiymatini oling.
satr str = strOb.GetOb ();
Console.WriteLine ("Qiymat:" + str);
}
}
Ushbu dastur quyidagi natijani beradi.
T turi - System.Int32
Qiymat: 102
T turi - System.String
Ma'nosi: Umumlashtiruvchilar samaradorlikni oshiradi.
Ushbu dasturni diqqat bilan tahlil qilamiz. Birinchidan, quyidagi kod qatorida Gen sinfining deklaratsiyasiga e'tibor bering:
sinf Gen {
bu erda T - turdagi parametrning nomi. Ushbu nom Gen sinf ob'ektini yaratishda ko'rsatilgan aniq tur uchun joy egallaydi. Shuning uchun, T turi Gen sinfida, biron bir parametr parametrini talab qilganda ishlatiladi. E'tibor bering, T nomi burchakli qavslarga o'ralgan (<>). Ushbu sintaksisni umumlashtirish mumkin: har qanday turdagi parametr e'lon qilinganida, u burchak qavslarida ko'rsatiladi. Va tip parametr Gen sinfida ishlatilganligi sababli bunday sinf umumlashtirilgan deb hisoblanadi.
Gen sinfining deklaratsiyasida siz istalgan turdagi parametrlar nomini ko'rsatishingiz mumkin, ammo an'anaga ko'ra T nomi tanlangan.Temir parametrlarning eng keng tarqalgan nomlari orasida V va E. nomlari bor. Siz, albatta, TValue yoki TKeu kabi ko'proq tavsiflovchi nomlardan foydalanishingiz mumkin. Ammo bu holda, birinchi navbatda T harfi parametr parametrining nomida ko'rsatilishi odatiy holdir.
Keyinchalik, T nomi kodning keyingi qatorida ko'rsatilgandek ob o'zgaruvchini e'lon qilish uchun ishlatiladi.
T ob; // T tipidagi o'zgaruvchini e'lon qilish
Yuqorida aytib o'tilganidek, T turidagi parametrning nomi Gen sinf ob'ektini yaratishda ko'rsatilgan aniq bir tur uchun joy vazifasini o'taydi. Shuning uchun, ob-havo o'zgaruvchisi Gen sinfiga tegishli ob'ektning namunasini olishda T ga bog'langan bo'ladi. Shunday qilib, agar T o'rniga satr ko'rsatilgan bo'lsa, ob'ekti misolida ob-havo o'zgaruvchisi tipli satr bo'ladi.
Endi Gen sinfining konstruktorini ko'rib chiqing.
ommaviy Gen (T o) {
ob = o;
}
Ko'rinib turibdiki, ushbu konstruktor to'g'risidagi parametr T turiga tegishli, demak parametrning o'ziga xos turi Gen sinfining ob'ektini yaratishda T bilan bog'langan tur bilan belgilanadi. Va parametr o va misol o'zgaruvchisi T turi bo'lsa, Gen sinf ob'ekti yaratilgandan keyin ularning aniq turi bir xil bo'ladi.
T tipidagi parametrdan foydalanib, misol sifatida GetOb () usuli yordamida quyida ko'rsatilgan usul bilan qaytarilgan turni ham ko'rsatishingiz mumkin.
umumiy T GetOb () {
qaytish ob;
}
Ob o'zgaruvchisi ham T turiga kiradi, shuning uchun uning turi GetOb () tomonidan qaytarilgan turga o'xshaydi.
Dostları ilə paylaş: |