1-amaliy mashg’ulotlar. DataSet yordamida ma’lumotlarni o‘qish
Darsning maqsadi:
Talabalarga DataSet yordamida ma’lumotlarni o‘qish
haqida asosiy
tushunchalarni hosil qilish va
is ,as operatorlariga oid
misollar yechish.
Qisqa nazariy ma’lumot
Ushbu mavzuda uchta kuchli vosita ko’rib chiqiladi: dinamik turni identifikatsiyalash, refleksiya va
atributlar. Dinamik tipni identifikatsiyalash - bu dastur ishlash vaqtida turidagi ma'lumotlar
turini
aniqlashga imkon beradigan mexanizm. Refleksiya - bu ma'lumotlar turi haqida ma'lumot olish vositasi.
Ushbu ma'lumotdan foydalanib, siz ish vaqtida qayta loyihalashingiz va ishlatishingiz mumkin. Bu juda
samarali vosita, chunki dastur funktsiyalarini dinamik ravishda kengaytirishga imkon beradi, ya'ni uni
amalga oshirish jarayonida. Atribut C # dasturining ma'lum bir elementining xususiyatlarini tavsiflaydi.
Atributlar sinflar, metodlar va maydonlar xususiyatlarini ko'rsatilishi mumkin. Dastur ishlash paytida
ular haqida ma'lumot olish uchun atributlarni so'rashga ruxsat beradi. Shu maqsadda atributlar dinamik
turdagi identifikatsiyalash va refliksiyada foydalanadi.
Dinamik turdagi identifikatsiya qilish
Dinamik turdagi identifikatsiya qilish (RTTI) dastur ishlash vaqtida ob'ekt turini aniqlashga imkon
beradi. Bu turli sabablarga ko'ra foydali bo'lib chiqadi. Dinamik tip identifikatsiyasini qo'llab-quvvatlash
uchun C # uchta kalit so'zni taqdim etadi: is, as va tipeof. Ushbu kalit so'zlarning har biri quyida o'z
navbatida muhokama qilinadi.
DataSetda Is operatori bilan turni tekshirish
Ob'ektning o'ziga xos turini
is
operatori yordamida aniqlash mumkin. Quyida ummumiy ko’rinishi
keltirilgan:
ifoda
is
tur
bu yerda
ifoda
tekshirilayotgan turning ob'ekti tavsiflovchi ifoda bilan tekshiriladi. Agar
ifoda
mos
keluvchi
yoki tekshirilayotgan
tur
bilan bir xil bo'lsa, u holda bu amalning natijasi to'g'ri,
aks holda
yolg'ondir. Masalan,
ifoda
u yoki bu shaklda tekshiriladigan
turga
ega bo'lsa, natija to'g'ri bo'ladi.
Quyida
is
operatoridan foydalanish misoli keltirilgan.
Natija quyidagicha bo’ladi
Yuqoridagi misoldagi aksariyat kodlar o'z-o'zidan
tushunarli, ammo
ulardan ikkitasiga oydinlik
kiritilishi kerak. Avvalo, quyidagi kod satriga e'tibor bering
if
(b
is
A
)
Console
.WriteLine(
"b A bilan mos keladi, chunki u A dan kelib chiqadi"
);
If operatori bajarilgan, chunki b A tipidagi ob'ekt B tipidagi ob'ekt, ammo buning aksi to'g'ri emas.
Shunday qilib, agar kod satrida bo'lsa
if
(a
is
В
)
Console
.WriteLine(
"U ko'rsatilmaydi, chunki a B ning obyekti emas"
);