O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA MAXSUS TA’LIM VAZIRLIGI
Urganch Davlat Universiteti Fizika-matematika fakulteti Kompyuter ilmlari va dasturlash texnologiyasi yo`nalishi 202-guruh tolibi Boltaboyev Jamshidning Algoritmik tillari va dasturlash fanidan tayyorlagan
KURS ISHI
Mavzu: C# tilida delegatlar, hodisalar va lambda ifodalardan foydalanish
Topshirdi: J.Boltaboyev Qabul qildi: M.Sharipov
Baholash: _________
Urganch-2022
Reja:
I
|
Kirish……………………………………………………..
|
3
|
II
|
Asosiy qism
|
|
2.1
|
C# dasturlash tili haqida. Delegatlar, tadbirlar va lambdalar delegatlar………..…………………………………………
|
6
|
2.2
|
Delegatlar, tadbirlar va lambdalarga oid masalalar yechish..
|
15
|
III
|
Xulosa…………………………………………..………….
|
21
|
IV
|
Foydalanilgan adabiyotlar …………………….………..
|
22
|
|
|
|
Kirish
Bugungi kunda C# dasturlash tili IT sohasida eng kuchli, tez rivojlanayotgan va talabga ega tillardan biri hisoblanadi. Ayni paytda unda turli xil ilovalar yozilgan: kichik ish stoli dasturlaridan tortib, har kuni millionlab foydalanuvchilarga xizmat ko'rsatadigan yirik veb-portallar va veb-xizmatlargacha. C# tili endi yosh til emas va .NET platformasining qolgan qismi kabi u uzoq yo‘lni bosib o‘tdi. Tilning birinchi versiyasi 2002 yil fevral oyida Microsoft Visual Studio .NET ning chiqarilishi bilan chiqdi. Tilning joriy versiyasi C# 10.0 bo‘lib, u 2021-yil 8-noyabrda .NET 6-ning chiqarilishi bilan birga chiqarilgan. C# - bu C-ga o'xshash sintaksisga ega til va bu jihatdan C++ va Java tillariga yaqin. Shuning uchun, agar siz ushbu tillardan biri bilan tanish bo'lsangiz, C# tilini o'zlashtirish osonroq bo'ladi. C# ob'ektga yo'naltirilgan bo'lib, bu borada Java va C++ dan ko'p narsalarni olgan.Masalan, C# tili polimorfizm, merosxo'rlik, operatorni ortiqcha yuklash, statik yozishni qo'llab-quvvatlaydi. Ob'ektga yo'naltirilgan yondashuv katta, lekin ayni paytda moslashuvchan, kengaytiriladigan va kengaytiriladigan ilovalarni qurish muammolarini hal qilishga imkon beradi. C# faol rivojlanishda davom etmoqda va har bir yangi versiya bilan yanada qiziqarli funktsiyalar paydo bo'ladi. .NET platformasining roli, C# deganda ular ko'pincha .NET platformasi texnologiyalarini (Windows Forms, WPF, ASP.NET, Xamarin) nazarda tutadi.
Aksincha, ular .NET deganda, ular ko'pincha C# ni anglatadi. Biroq, bu tushunchalar bir-biriga bog'liq bo'lsa-da, ularni aniqlash noto'g'ri. C# tili .NET ramkasi bilan ishlash uchun maxsus yaratilgan, ammo .NET tushunchasining o'zi biroz kengroqdir. Bir paytlar Bill Geyts .NET platformasi Microsoft yaratgan eng yaxshisi ekanligini aytdi. Balki u haq edi. .NET Framework ilovalarni yaratish uchun kuchli platformani taqdim etadi. Quyidagi asosiy xususiyatlarni ajratib ko'rsatish mumkin: Ko'p tillarni qo'llab-quvvatlash . Platformaning markazida Common Language Runtime (CLR) joylashgan boʻlib, u .NET ni bir nechta tillarni qoʻllab-quvvatlaydi: C# dan tashqari, u VB.NET, C++, F# va boshqa tillarning turli dialektlarini ham oʻz ichiga oladi. NET, masalan, Delphi.NET. Kompilyatsiya qilinganda, ushbu tillarning har qandayidagi kod Common Intermediate Language (CIL) assambleyasiga, .NET assembler turiga kompilyatsiya qilinadi. Shuning uchun, ma'lum sharoitlarda, biz alohida tillarda bitta ilovaning alohida modullarini yaratishimiz mumkin. O'zaro platformalar . .NET portativ platforma (ba'zi cheklovlar bilan). Masalan, hozirgi vaqtda platformaning eng so'nggi versiyasi - .NET 6 eng zamonaviy Windows, MacOS, Linux-da qo'llab-quvvatlanadi. .NET platformasida turli texnologiyalardan foydalangan holda siz turli platformalar - Windows, MacOS, Linux, Android, iOS, Tizen uchun C# ilovalarini ishlab chiqishingiz mumkin. Kuchli sinf kutubxonasi .
.NET barcha qo'llab-quvvatlanadigan tillar uchun yagona sinf kutubxonasini taqdim etadi. Biz C# tilida qaysi dasturni yozishimizdan qat'iy nazar - matn muharriri, chat xonasi yoki murakkab veb-sayt - u yoki bu tarzda biz .NET sinf kutubxonasidan foydalanamiz. Turli xil texnologiyalar . Umumiy tilning ishlash vaqti (CLR) va asosiy sinf kutubxonasi ishlab chiquvchilar ilovalarni yaratishda foydalanishi mumkin bo'lgan butun texnologiyalar to'plami uchun asosdir. Masalan, ADO.NET va Entity Framework Core texnologiyasi ushbu texnologiya stekidagi ma'lumotlar bazalari bilan ishlash uchun mo'ljallangan.
Boy interfeysli grafik ilovalarni yaratish - WPF va WinUI texnologiyasi, oddiyroq grafik ilovalarni yaratish - Windows Forms. O'zaro platformali mobil va ish stoli ilovalarini ishlab chiqish uchun - Xamarin/MAUI. Veb-saytlar va veb-ilovalarni yaratish uchun - ASP.NET va boshqalar. Bunga faol rivojlanayotgan va mashhurlikka erishayotgan Blazor - .NET ning tepasida ishlaydigan va server tomonida ham, mijoz tomonida ham veb-ilovalarni yaratish imkonini beruvchi ramkani qo'shish kerak. Va kelajakda u mobil ilovalarni va, ehtimol, ish stoli ilovalarini yaratishni qo'llab-quvvatlaydi. Bir qator testlarda .NET 6 veb-ilovalari bir qator toifalar bo'yicha boshqa texnologiyalar bilan tuzilgan veb-ilovalardan ancha ustundir. .NET 6 dagi ilovalar odatda yuqori unumdorligi bilan ajralib turadi. Shuni ham ta'kidlash kerakki, C# tili va .NET ramkasining avtomatik axlat yig'ish xususiyati. Va bu shuni anglatadiki, ko'p hollarda biz C ++ dan farqli o'laroq, xotirani bo'shatish haqida tashvishlanmasligimiz kerak. Yuqoridagi umumiy til ish vaqti axlat yig'uvchini chaqiradi va xotirani tozalaydi.
.NET Framework va .NET 6 Shuni ta'kidlash kerakki, .NET uzoq vaqtdan beri birinchi navbatda Windows uchun platforma sifatida .NET Framework deb nomlangan. 2019-yilda ushbu platformaning so‘nggi versiyasi chiqdi – .NET Framework 4.8. U endi rivojlanmaydi. 2014-yildan boshlab Microsoft muqobil platforma - .NET Core ni ishlab chiqishni boshladi, u allaqachon turli platformalar uchun mo'ljallangan bo'lib, eskirgan .NET Frameworkning barcha xususiyatlarini o'zida mujassamlashtirgan va yangi funksiyalarni qo'shishi kerak edi. Keyin Microsoft ushbu platformaning bir qator versiyalarini ketma-ket chiqardi:
.NET Core 1, .NET Core 2, .NET Core 3, .NET 5. Va joriy versiya ushbu qo'llanmada muhokama qilingan .NET 6 platformasidir. asosan Windows uchun moʻljallangan .NET Framework va oʻzaro platforma .NET 6 oʻrtasida farqlanadi. Ushbu qoʻllanma .NET 6 bilan birgalikda C# 10 ga eʼtibor qaratiladi, chunki bu joriy platforma hisoblanadi. Boshqariladigan va boshqarilmaydigan kod Ko'pincha C# da yaratilgan dastur boshqariladigan kod deb ataladi. Bu nima degani? Bu shuni anglatadiki, ushbu ilova .NET ramkasi ustiga qurilgan va shuning uchun dasturni yuklaydigan va kerak bo'lganda xotirani tozalaydigan umumiy tilning ish vaqti (CLR) tomonidan boshqariladi. Ammo C++ da yaratilganlar kabi C#, VB.NET yoki F# kabi umumiy CIL tiliga emas, balki oddiy mahalliy kodga kompilyatsiya qilinadigan ilovalar ham mavjud. Bunday holda, .NET dasturni boshqara olmaydi. Shu bilan birga, .NET platformasi boshqarilmaydigan kod bilan birgalikda ishlash imkoniyatlarini taqdim etadi. Yuqorida aytib o'tilganidek, C# kodi CIL tilida exe yoki dll kengaytmalari bo'lgan ilovalar yoki yig'ilishlarga kompilyatsiya qilinadi. Bundan tashqari, bunday dastur bajarish uchun ishga tushirilganda, JIT kompilyatsiyasi (Just-In-Time) mashina kodiga kiradi va keyin bajariladi. Shu bilan birga, bizning ilovamiz katta bo'lishi va ko'rsatmalar to'plamini o'z ichiga olishi mumkinligi sababli, hozirgi vaqtda dasturning to'g'ridan-to'g'ri kirish mumkin bo'lgan qismigina kompilyatsiya qilinadi. Agar kodning boshqa qismiga murojaat qilsak, u CIL dan mashina kodiga kompilyatsiya qilinadi. Bundan tashqari, dasturning allaqachon tuzilgan qismi dastur oxirigacha saqlanadi. Oxir-oqibat, bu ish faoliyatini yaxshilaydi.
Delegatlar usullarga ishora qiluvchi ob'ektlarni ifodalaydi. Ya'ni delegatlar usullarga ko'rsatgich bo'lib, delegatlar yordamida biz bu usullarni chaqirishimiz mumkin. Delegatlarni aniqlashda Delegate kalit so'zi delegatni e'lon qilish uchun ishlatiladi, undan keyin qaytish turi, nomi va parametrlari. Misol uchun:
Do'stlaringiz bilan baham: |