Дт интерфейсини ишлаб чиқишда



Download 406,4 Kb.
bet20/23
Sana03.01.2022
Hajmi406,4 Kb.
#316595
1   ...   15   16   17   18   19   20   21   22   23
Bog'liq
C##

Turlar va o'zgaruvchilar

turi C # har qanday ma'lumotlar tuzilishi va xatti belgilaydi. Tur deklaratsiyasi uning a'zolarini, asosiy turini, u amalga oshiradigan interfeyslarni va ushbu tur uchun ruxsat etilgan operatsiyalarni o'z ichiga olishi mumkin. A o'zgaruvchan muayyan turdagi bir misol anglatadi bir teg bo'ladi.

C# da ikki xil tur mavjud: qiymat turlari va mos yozuvlar turlari . Qiymat turlarining o'zgaruvchilari bevosita ularning ma'lumotlarini o'z ichiga oladi. Malumot turlarining o'zgaruvchilari o'z ma'lumotlariga havolalarni saqlaydi, ikkinchisi ob'ektlar sifatida tanilgan. Malumot turlari bilan ikkita o'zgaruvchi bir xil ob'ektga murojaat qilishi mumkin va bitta o'zgaruvchidagi operatsiyalar boshqa o'zgaruvchi tomonidan havola qilingan ob'ektga ta'sir qilishi mumkin. Qiymat turlari bilan o'zgaruvchilarning har biri ma'lumotlarning o'z nusxasiga ega va birida operatsiyalar ikkinchisiga ta'sir qilishi mumkin emas ( refva outparametr o'zgaruvchilari bundan mustasno ).

An identifikator bir o'zgaruvchi ism. Identifikator - bu bo'shliqsiz unicode belgilar ketma-ketligi. Identifikator, agar u prefiks bilan qo'yilgan bo'lsa, C# tomonidan ajratilgan so'z bo'lishi mumkin @. Identifikator sifatida zaxiralangan so'zdan foydalanish boshqa tillar bilan muloqot qilishda foydali bo'lishi mumkin.

C# ning qiymat turlari yana oddiy turlarga , enum turlariga , struktura turlariga , null qiymat turlariga va kortej qiymat turlariga bo'linadi . C# ning mos yozuvlar turlari o'z navbatida sinf turlari , interfeys turlari , massiv turlari va delegat turlariga bo'linadi .

Quyidagi sxema C# tipidagi tizimning umumiy ko'rinishini beradi.



  • Qiymat turlari

    • Oddiy turlar

      • Belgilangan integral : sbyte, short, int,long

      • Ishorasiz integral : byte, ushort, uint,ulong

      • Unicode belgilar : charUTF-16 kod birligini ifodalaydi

      • IEEE ikkilik suzuvchi nuqta : float,double

      • Yuqori aniqlikdagi o'nlik suzuvchi nuqta :decimal

      • Boolean: boolbor mantiqiy qiymatlar-qadriyatlarni anglatadi yo trueyokifalse

    • Enum turlari

      • Shaklning foydalanuvchi tomonidan belgilangan turlari enum E {...}. Tur enum- nomli konstantalarga ega bo'lgan alohida tur. Har bir enumturning asosiy turi bor, u sakkizta integral turdan biri bo'lishi kerak. Turning qiymatlari enumto'plami asosiy turdagi qiymatlar to'plami bilan bir xil bo'ladi.

    • Struktura turlari

      • Shaklning foydalanuvchi tomonidan belgilangan turlari struct S {...}

    • Null qiymat turlari

      • Bilan boshqa barcha qiymati turdagi Extensions nullqiymati

    • Tuple qiymat turlari

      • Shaklning foydalanuvchi tomonidan belgilangan turlari (T1, T2, ...)

  • Malumot turlari

    • Sinf turlari

      • Boshqa barcha turlarning yakuniy tayanch klassi: object

      • Unicode satrlari : string, UTF-16 kod birliklari ketma-ketligini ifodalaydi

      • Shaklning foydalanuvchi tomonidan belgilangan turlari class C {...}

    • Interfeys turlari

      • Shaklning foydalanuvchi tomonidan belgilangan turlari interface I {...}

    • Massiv turlari

      • Bir o'lchovli, ko'p o'lchovli va qirrali. Masalan: int[], int[,], vaint[][]

    • Delegat turlari

      • Shaklning foydalanuvchi tomonidan belgilangan turlari delegate int D(...)

C# dasturlari yangi turlarni yaratish uchun tip deklaratsiyasidan foydalanadi . Tur deklaratsiyasi yangi turdagi nom va a'zolarni belgilaydi. C# toifalarining oltitasi foydalanuvchi tomonidan aniqlanishi mumkin: sinf turlari, tuzilma turlari, interfeys turlari, enum turlari, delegatlar turlari va kortej qiymatlari turlari. Shuningdek , siz yoki yoki recordturlarini e'lon qilishingiz mumkin . Yozuv turlari kompilyator-sintezlangan a'zolarga ega. Yozuvlardan asosan qiymatlarni saqlash uchun foydalanasiz, ular bilan bog'liq bo'lgan minimal xatti-harakatlar.record structrecord class

  • A classturi ma'lumotlar a'zolari (joylar) va funktsiya a'zolari (usullari, xususiyatlari va boshqalar) o'z ichiga olgan ma'lumotlar tuzilishini belgilaydi. Sinf turlari yagona meros va polimorfizmni qo'llab-quvvatlaydi, mexanizmlar hosil bo'lgan sinflar asosiy sinflarni kengaytirishi va ixtisoslashtirishi mumkin.

  • Tur structsinf tipiga o'xshaydi, chunki u ma'lumotlar a'zolari va funktsiya a'zolari bilan tuzilmani ifodalaydi. Biroq, sinflardan farqli o'laroq, tuzilmalar qiymat turlari bo'lib, odatda to'p ajratishni talab qilmaydi. Struktura turlari foydalanuvchi tomonidan belgilangan merosni qo'llab-quvvatlamaydi va barcha struktura turlari bilvosita type dan meros bo'lib qoladi object.

  • An interfaceturi jamoatchilik a'zolari bir nomli to'plami sifatida shartnoma belgilaydi. A classyoki structamalga oshiradigan interfaceinterfeys a'zolarining amalga oshirilishini ta'minlashi kerak. An bir interfacenechta asosiy interfeyslarni meros qilib olishi mumkin va a classyoki structbir nechta interfeyslarni amalga oshirishi mumkin.

  • Tur delegatema'lum parametrlar ro'yxati va qaytish turiga ega usullarga havolalarni ifodalaydi. Delegatlar usullarni o'zgaruvchilarga tayinlanishi va parametr sifatida uzatilishi mumkin bo'lgan ob'ektlar sifatida ko'rib chiqishga imkon beradi. Delegatlar funktsional tillar tomonidan taqdim etilgan funksiya turlariga o'xshashdir. Ular, shuningdek, ba'zi boshqa tillarda joylashgan funktsiya ko'rsatkichlari tushunchasiga o'xshaydi. Funksiya ko'rsatkichlaridan farqli o'laroq, delegatlar ob'ektga yo'naltirilgan va turdagi xavfsizdir.

class, struct, interface, Va delegateturlari, ular boshqa turlari bilan InGaN mumkin qaerga barcha qo'llab-quvvatlash tovar.

C# har qanday turdagi bir o'lchovli va ko'p o'lchovli massivlarni qo'llab-quvvatlaydi. Yuqorida sanab o'tilgan turlardan farqli o'laroq, massiv turlarini ishlatishdan oldin e'lon qilish shart emas. Buning o'rniga, massiv turlari kvadrat qavslar bilan tur nomiga rioya qilish orqali tuziladi. Misol uchun, int[]bir-o'lchovli qator int, int[,]ikki o'lchovli qator bo'lib int, va int[][]yagona-o'lchovli, tillo bir-o'lchovli, qator yoki "taram" majmuasini, deb int.

Null bo'ladigan turlar alohida ta'rifni talab qilmaydi. Har bir null bo'lmagan tur Tuchun tegishli null bo'ladigan turi mavjud bo'lib T?, u qo'shimcha qiymatga ega bo'lishi mumkin null. Masalan, int?har qanday 32 bitli butun sonni yoki qiymatini ushlab turadigan tur nullva string?istalgan stringyoki qiymatini ushlab turadigan tur null.

C# tipidagi tizim shunday birlashtirilganki, har qanday turdagi qiymatni object. C# tilidagi har bir tur to'g'ridan-to'g'ri yoki bilvosita objectsinf turidan kelib chiqadi va objectbarcha turlarning yakuniy tayanch sinfidir. Malumot turlarining qiymatlari, qiymatlarni tur sifatida ko'rish orqali ob'ektlar sifatida ko'rib chiqiladi object. Qiymat turlarining qiymatlari boks va qutidan chiqarish operatsiyalarini bajarish orqali ob'ektlar sifatida ko'rib chiqiladi . Quyidagi misolda intqiymat ga objectva yana ga aylantiriladi int.

C#Nusxalash

int i = 123;

object o = i; // Boxing

int j = (int)o; // Unboxing

Qiymat turining qiymati objectmos yozuvlar uchun tayinlanganda, qiymatni saqlash uchun "quti" ajratiladi. Bu quti mos yozuvlar turining namunasidir va qiymat ushbu qutiga ko'chiriladi. Aksincha, objecthavola qiymat turiga o'tkazilganda, havola qilingan objectqiymat to'g'ri turdagi quti ekanligi tekshiriladi. Tekshirish muvaffaqiyatli bo'lsa, qutidagi qiymat qiymat turiga ko'chiriladi.

C# ning yagona turdagi tizimi samarali qiymat turlariga object"talab bo'yicha" havola sifatida qaralishini anglatadi . Birlashtirilganligi sababli, turini ishlatadigan umumiy maqsadli kutubxonalar objectdan kelib chiqadigan barcha turlar object, shu jumladan mos yozuvlar turlari va qiymat turlari bilan ishlatilishi mumkin.

C# da maydonlar, massiv elementlari, mahalliy o'zgaruvchilar va parametrlarni o'z ichiga olgan bir necha turdagi o'zgaruvchilar mavjud. O'zgaruvchilar saqlash joylarini ifodalaydi. Har bir o'zgaruvchi quyida ko'rsatilganidek, o'zgaruvchida qanday qiymatlarni saqlash mumkinligini aniqlaydigan turga ega.



  • Null bo'lmagan qiymat turi

    • Aynan shu turdagi qiymat

  • Null qiymat turi

    • A nullqiymati yoki aniq turdagi bir qiymat

  • ob'ekt

    • A nullyozuvlar, har qanday yozuvlar turdagi ob'ektga mos yozuvlar yoki har qanday qiymati turdagi Ambalajlı qiymatiga mos yozuvlar

  • Sinf turi

    • A nullyozuvlar, bu sinf turlari Misol uchun, mos yozuvlar yoki sinf misoli bir yozuvlar deb sinf turi olingan

  • Interfeys turi

    • A nullyozuvlar, bir sinf turdagi misol uchun, bir Malumot deb amalga interfeysi turi, yoki qiymati turdagi Ambalajlı qiymatiga bir mos yozuvlar deb asbob deb interfeysi turi

  • Massiv turi

    • A nullyozuvlar, deb array turdagi misol uchun mos yozuvlar, yoki mos keluvchi array turdagi misol uchun mos yozuvlar

  • Delegat turi

    • A nullyozuvlar yoki mos keluvchi vakil turdagi misol uchun mos yozuvlar


Download 406,4 Kb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   23




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