|
C# tilining asosiy xususiyatlari
|
bet | 2/3 | Sana | 21.05.2024 | Hajmi | 42,02 Kb. | | #248237 |
Bog'liq C# tilining tashkil etuvchilari.C# tilining asosiy xususiyatlari
Oddiy va tanish sintaksis: C# sintaksisi C, C++ va Java kabi C uslubidagi boshqa tillarga o'xshaydi, bu tillarni yaxshi biladigan dasturchilar uchun o'rganishni nisbatan osonlashtiradi.
Ob'ektga yo'naltirilgan dasturlash (OOP): C# ob'ektga yo'naltirilgan dasturlash tamoyillari atrofida ishlab chiqilgan, jumladan sinflar, ob'ektlar, meros, inkapsulyatsiya va polimorfizm.
Kuchli yozish: C# - bu statik tarzda yozilgan til, ya'ni o'zgaruvchilar turlari kompilyatsiya vaqtida aniq e'lon qilinishi kerak. Bu turga bog'liq xatolarni ishlab chiqish jarayonining boshida aniqlashga yordam beradi.
Xotirani avtomatik boshqarish: C# xotirani avtomatik boshqarish uchun axlat yig'ishdan foydalanadi, bu esa ishlab chiquvchilarni ob'ektlar uchun xotirani qo'lda ajratish va ajratishdan ozod qiladi.
Yagona turdagi tizim: C# ikkala qiymat turlarini (masalan, int, float kabi ibtidoiy turlar) va mos yozuvlar turlarini (masalan, ob'ektlar, satrlar) o'z ichiga olgan birlashtirilgan turdagi tizimga ega bo'lib, turlarni qayta ishlashda moslashuvchanlik va izchillikni ta'minlaydi.
Rich Standard Library: C# keng qamrovli standart kutubxona, .NET Framework (hozirgi .NET 5 va undan keyingi versiyalari) bilan birga keladi, bu fayl kiritish-chiqarish, tarmoqqa ulanish, maʼlumotlar bazasiga kirish, va boshqalar.
Istisnolarni qayta ishlash: C# try-catch-finally bloklari orqali tuzilgan istisnolarni qayta ishlashni qo'llab-quvvatlaydi, bu esa ishlab chiquvchilarga xatolar va istisnolarni o'z kodlari doirasida nozik tarzda hal qilish imkonini beradi.
Xususiyatlar va indeksatorlar: C# xususiy ma'lumotlarni qamrab oluvchi va qabul qiluvchi va sozlash usullari orqali boshqariladigan kirishni ta'minlaydigan xususiyatlarni aniqlash imkonini beradi. Indeksatorlar ob'ektlarni massivlarga o'xshash tarzda indekslash imkonini beradi.
Delegatlar va hodisalar: C# qayta qo'ng'iroq qilish mexanizmlari va hodisalarni boshqarish imkonini beruvchi turdagi xavfsiz funktsiya ko'rsatkichlari bo'lgan delegatlarni qo'llab-quvvatlaydi. Voqealar kuzatuvchi naqshini amalga oshirishning qulay usulini ta'minlaydi.
Generics: C# generiklarni qo'llab-quvvatlaydi, bu boshqa turlar bo'yicha parametrlangan turlarda ishlaydigan xavfsiz, qayta foydalanish mumkin bo'lgan sinflar, interfeyslar va usullarni yaratishga imkon beradi.
LINQ (Language Integrated Query): C# to'plamlari, ma'lumotlar bazalari va XML kabi turli manbalardan ma'lumotlarni so'rash va manipulyatsiya qilishning yagona usulini ta'minlovchi Language Integrated Query xususiyatiga ega.
Asinxron dasturlash: C# asinxron va kutish kalit so'zlari orqali asinxron dasturlashni qo'llab-quvvatlaydi, bu esa ishlab chiquvchilarga kiritish-chiqarish operatsiyalari va parallel ishlov berish kabi vazifalar uchun bloklanmaydigan, javob beruvchi kod yozish imkonini beradi.
Bu xususiyatlar C# ni ish stoli dasturiy ta'minotidan veb-ilovalargacha, mobil ilovalargacha va boshqa ko'plab dasturlarni yaratish uchun kuchli va ko'p qirrali tilga aylantiradi.
Nomlar bo'shliqlari bilan modullik: C# nomlar bo'shliqlarini qo'llab-quvvatlaydi, ular kodni mantiqiy guruhlarga ajratish va nomlash ziddiyatlarini oldini olish imkonini beradi. Nomlar bo'shliqlari, shuningdek, ishlab chiquvchilarga tegishli funktsiyalarni qamrab olish imkonini berish orqali kodni qayta ishlatish va texnik xizmat ko'rsatishni osonlashtiradi.
Meros va polimorfizm: C# sinflarga meros orqali boshqa sinflardan xatti-harakatlar va atributlarni meros qilib olish imkonini beradi. Bu kodni qayta ishlatish imkonini beradi va kodning ierarxik tashkil etilishiga yordam beradi. Polimorfizm ob'ektlarni o'zlarining ota-onalar sinfining namunalari sifatida ko'rib chiqishga imkon beradi, bu esa dizayndagi moslashuvchanlik va kengayishni osonlashtiradi.
Mavhum sinflar va interfeyslar: C# mavhum sinflarni qo'llab-quvvatlaydi, ularni to'g'ridan-to'g'ri yaratish mumkin emas, lekin boshqa sinflar uchun asosiy sinflar sifatida foydalanish mumkin. Interfeyslar taqdim etilishi kerak bo'lgan usullar va xususiyatlar to'plamini ko'rsatib, sinflar amalga oshirishi mumkin bo'lgan shartnomani belgilaydi. Abstrakt sinflar va interfeyslar C# ning abstraktsiya va kodni qayta ishlatish uchun qo'llab-quvvatlashning asosiy komponentlari hisoblanadi.
Strukturalar (strukturalar): C# tuzilmalarni sinflarga engil muqobil sifatida taqdim etadi. Strukturalar qiymat turlari bo'lib, odatda kichik, o'zgarmas ma'lumotlar tuzilmalarini ifodalash uchun ishlatiladi. Ular ko'pincha stekda kichik hajmdagi ma'lumotlarni saqlash uchun sinflarga qaraganda samaraliroqdir.
Voqealar va delegatlar: C# voqealar va delegatlarni qo'llab-quvvatlaydi, bu voqealarga asoslangan va qayta qo'ng'iroqlarga asoslangan dasturlash naqshlarini amalga oshirishni osonlashtiradi. Delegatlar, mos imzolar bilan usullarga murojaat qilishlari mumkin bo'lgan turdagi xavfsiz funktsiya ko'rsatkichlari. Voqealar ob'ektlar uchun holat o'zgarishi yoki boshqa hodisalar haqida bildirishnomalarni nashr qilish mexanizmini ta'minlaydi.
Null bo'ladigan qiymat turlari: C# qiymat turlarini null bo'lishiga imkon beradi, ya'ni ular haqiqiy qiymat yoki nol havolani ko'rsatishi mumkin. Null qiymat turlari ma'lumotlar bazasi qiymatlari, API javoblari yoki qiymat bo'lmasligi mumkin bo'lgan boshqa stsenariylar bilan ishlashda foydalidir.
Atributga asoslangan dasturlash: C# atributlarni qo'llab-quvvatlaydi, ular dastur turlari va a'zolariga metama'lumotlar yoki xatti-harakatlarni qo'shish imkonini beradi. Atributlar turli maqsadlarda ishlatilishi mumkin, masalan, hujjatlarni qo'shish, ketma-ketlashtirish xatti-harakatlarini belgilash yoki kompilyator/ish vaqtining harakatini nazorat qilish.
Qisman sinflar va usullar: C# qisman kalit so'z yordamida bir nechta fayllarda sinflar va usullarni aniqlash imkonini beradi. Bu xususiyat, ayniqsa, kodni mantiqiy birliklarga ajratish yoki kod ishlab chiqarish vositalariga to'g'ridan-to'g'ri manba kodini o'zgartirmasdan mavjud sinflarning funksionalligini oshirishga ruxsat berish uchun foydalidir.
Lambda iboralari: C# lambda ifodalarini qo'llab-quvvatlaydi, ular anonim funktsiyalarni aniqlash uchun qisqacha sintaksisni ta'minlaydi. Lambda iboralari ko'pincha kodni soddalashtirish va o'qishni yaxshilash uchun LINQ so'rovlari, hodisalarni boshqarish va asinxron dasturlashda qo'llaniladi.
Kengaytma usullari: C# ishlab chiquvchilarga kengaytma usullaridan foydalangan holda manba kodini o'zgartirmasdan mavjud turlarni yangi usullar bilan kengaytirish imkonini beradi. Kengaytma usullari ravon dasturlash uslubini ta'minlaydi va ishlab chiquvchilarga tashqi kutubxonalar yoki ramkalarda belgilangan turlarga funksionallik qo'shish imkonini berish orqali kodni qayta ishlatishni rag'batlantiradi.
Pattern Matching: C# naqsh moslashuvini taqdim etadi, bu xususiyat ishlab chiquvchilarga switch iboralari, is va case iboralari va when bandlari kabi til konstruksiyalari yordamida maʼlumotlar shakli yoki tuzilishini sinab koʻrish imkonini beradi. Naqshni moslashtirish kodni soddalashtiradi va turni tekshirish va dekonstruksiya kabi stsenariylarda tur xavfsizligini yaxshilaydi.
Yozuvlar: C# 9.0 o'zgarmas ma'lumotlar turlarini e'lon qilish uchun qisqacha sintaksis bo'lgan yozuvlarni taqdim etadi. Yozuvlar avtomatik ravishda qiymatga asoslangan tenglik, xeshlash va qatorni ko'rsatish usullarini yaratadi, bu ularni ma'lumotlar uzatish ob'ektlarini (DTO), o'zgarmas ma'lumotlar tuzilmalarini va engil ob'ektlarni modellashtirish uchun ideal qiladi.
Standart interfeys usullari: C# 8.0 standart interfeys usullarini taqdim etadi, bu esa ishlab chiquvchilarga interfeyslarda usullarni amalga oshirish imkonini beradi. Standart interfeys usullari mavjud ilovalarni buzmasdan interfeyslarga yangi usullarni qo'shish imkonini berish orqali interfeysning rivojlanishini ta'minlaydi.
Null mumkin bo'lgan mos yozuvlar turlari: C# 8.0 null bo'lishi mumkin bo'lgan mos yozuvlar turlarini taqdim etadi, bu esa ishlab chiquvchilarga mos yozuvlar turi null yoki nol bo'lishi mumkinmi degan niyatni ifodalash imkonini beradi. Null mumkin bo'lgan mos yozuvlar turlari nol mos yozuvlar istisnolarini oldini olishga yordam beradi va turdagi tizimda nulllikni aniq qilib, kod ravshanligi va to'g'riligini yaxshilaydi.
Asinxron oqimlar: C# 8.0 asinxron oqimlarni taqdim etadi, bu esa ishlab chiquvchilarga await foreach konstruktsiyasidan foydalangan holda asinxron ma'lumotlar ketma-ketligini iste'mol qilish va ishlab chiqarish imkonini beradi. Asinxron oqimlar asenkron ma'lumotlar oqimlarini minimal xotira yuki va resurslar sarfi bilan samarali qayta ishlash imkonini beradi.
Xavfli kod: C# ishlab chiquvchilarga xavfli kalit so'z yordamida xavfli kod bloklarini yozish imkonini beradi. Xavfli kod xotira va to'g'ridan-to'g'ri ko'rsatkich arifmetikasini past darajadagi manipulyatsiya qilish imkonini beradi, bu mahalliy kod bilan o'zaro ishlash yoki yuqori samarali algoritmlarni amalga oshirish kabi ishlash uchun muhim stsenariylarda foydali bo'lishi mumkin.
Tekshirilgan va tekshirilmagan kontekstlar: C# arifmetik operatsiyalar uchun to'lib ketishni tekshirishni nazorat qilish uchun tekshirilgan va belgilanmagan kontekstlarni taqdim etadi. Tekshirilgan kontekstda to'lib ketishga olib keladigan arifmetik amallar istisno qiladi, tekshirilmagan kontekstda esa to'lib ketishga ruxsat beriladi va natija o'raladi. Bu ishlab chiquvchilarga raqamli hisob-kitoblarda xavfsizlik va samaradorlik o'rtasidagi muvozanatni saqlashga imkon beradi.
Atributlar: C# atributlarni qo'llab-quvvatlaydi, bu esa dastur turlari va a'zolariga metama'lumotlar yoki xatti-harakatlarni qo'shish imkonini beradi. Atributlar hujjatlarni qo'shish, ketma-ketlashtirish xatti-harakatlarini belgilash, kod ishlab chiqarishni boshqarish yoki asboblar va ramkalarga ma'lumot berish kabi turli maqsadlar uchun ishlatilishi mumkin.
Preprotsessor direktivalari: C# kompilyatsiya vaqti konstantalari yoki belgilar asosida kodni shartli kompilyatsiya qilishga imkon beruvchi preprotsessor direktivalarini o'z ichiga oladi. Preprotsessor direktivalari kod bo'limlarini kiritish yoki chiqarib tashlash, maxsus kompilyatsiya konstantalarini aniqlash yoki turli xil konfiguratsiyalar uchun kodni shartli ravishda kompilyatsiya qilish uchun ishlatilishi mumkin.
Nomlangan va ixtiyoriy argumentlar: C# ishlab chiquvchilarga usullarni chaqirishda nomli argumentlarni belgilash imkonini beradi, bu ularga argumentlarni istalgan tartibda uzatish va ixtiyoriy parametrlarni o'tkazib yuborish imkonini beradi. Nomlangan va ixtiyoriy argumentlar usul qo'ng'iroqlarini o'z-o'zidan hujjatlashtirish va moslashuvchan qilish orqali kodning o'qilishi va barqarorligini yaxshilaydi.
Indeks va diapazon operatorlari: C# indeks va diapazon operatorlarini taqdim etadi, ular joylashuvi yoki diapazoni asosida to'plamlar elementlariga yoki qatorlar pastki qatorlariga kirish uchun qisqacha sintaksisni ta'minlaydi. Indeks va diapazon operatorlari umumiy indekslash va kesish operatsiyalarini soddalashtiradi va kodni yanada ifodali va o'qilishi mumkin qiladi.
Bu xususiyatlar C# tilining unumdorligi, ifodaliligi va xavfsizligini yanada oshirib, ishlab chiquvchilarga keng doiradagi ilovalar va stsenariylar uchun ixcham, qo'llab-quvvatlanadigan va samarali kod yozish imkonini beradi.
|
| |