Kirish Roʻyxatdan oʻtish

Docx

  • Referatlar
  • Diplom ishlar
  • Boshqa
    • Slaydlar
    • Referatlar
    • Kurs ishlari
    • Diplom ishlar
    • Dissertatsiyalar
    • Dars ishlanmalar
    • Infografika
    • Kitoblar
    • Testlar

Dokument ma'lumotlari

Narxi 30000UZS
Hajmi 288.2KB
Xaridlar 0
Yuklab olingan sana 09 Iyun 2025
Kengaytma docx
Bo'lim Kurs ishlari
Fan Informatika va AT

Sotuvchi

G'ayrat Ziyayev

Ro'yxatga olish sanasi 14 Fevral 2025

87 Sotish

C# dasturlash tilida vorislikdan foydalanish

Sotib olish
O’ZBEKISTON RESPUBLIKASI
OLIY TA’LIM , FAN VA INNOVATSIYALAR
VAZIRLIGI
FARG’ONA DAVLAT UNIVERSITETI
FIZIKA-MATEMATIKA FAKULTETI
60540200 - Amaliy matematika yo‘nalishi
-guruh talabasi
ning
“Algoritmik tillar va dasturlash” fanidan
“ C# dasturlash tilida vorislikdan foydalanish ” mavzusidagi
KURS ISHI
Kurs ishi rahbari:
Farg‘ona 2025
                                                                                                                                                                             1 MUN DA RIJ A :
ASOSIY QISM ............................................................................................................................................ 5
1-§. Obyektga Yo‘naltirilgan Dasturlash haqida ....................................................................................... 5
II-BOB. Vorislik ....................................................................................................................................... 15
III-BOB. Vorislikda konstruktorlardan foydalanish ................................................................................. 22
IV-BOB. Vorislikda  base  yordamchi so‘zidan foydalanish ...................................................................... 25
XULOSA .................................................................................................................................................. 29
FOYDALANILGAN ADABIYOTLAR ............................................................................................................ 31
KIRISH
Dasturlash   tillari   tarixi   —   dastlabki   kompyuterlarni   hujjatlashtirishdan
tortib,   dasturiy   ta minotni   ishlab   chiqish   uchun   zamonaviy   vositalarni   o z   ichigaʼ ʻ
oladi. Ilk dasturlash tillari juda tor doirada qo llanilishga mo ljallangan bo lib, ular	
ʻ ʻ ʻ
matematik   belgilarga   va   shunga   o xshash   tushunarsiz   sintaksisga   tayangan.	
ʻ
Kompyuter texnikasining rivojlanishi  dasturlash tillarida algoritmlarni yozib olish
uchun turli xil yangi belgilar tizimlarining paydo bo lish jarayonini belgilab berdi.	
ʻ
Bunday tilning paydo   bo lishining ma nosi dastur kodini soddalashtirishdan iborat	
ʻ ʼ
edi.   Dasturlash   tillarini   besh   avlodga   bo lish   qabul   qilingan.   Birinchi   avlodga	
ʻ
o tgan asrning 50-yillari boshlarida, birinchi kompyuterlar endigina paydo bo lgan	
ʻ ʻ
paytda   tuzilgan   tillar   kiradi.   Bu   "bir   satrda   bir   buyruq"   prinsipi   asosida   qurilgan
birinchi   assembler   tili   edi.   XX   asr   davomida   kompilyatorlar   nazariyasi   bo yicha	
ʻ
olib borilgan izlanishlar yuqori darajadagi dasturlash tillarini yaratishga olib keldi,
ular ko rsatmalarni uzatish uchun qulayroq sintaksisdan foydalanadilar.	
ʻ
Mashina kodlari va assembler. 
                                                                                                                                                                             2 Kompyuterning   elektron   qurilmalari   ishlashning   fizik   tamoyillari   shundan
iboratki,   kompyuter   faqat   bir   va   noldan   iborat   buyruqlarni   —   kuchlanishning
pasayishi   ketma-ketligini,   ya ni   mashina   kodini   idrok   eta   oladi.   Kompyuterlarʼ
rivojlanishining dastlabki bosqichida odam   kompyuterga tushunarli tilda, mashina
kodlarida dasturlar tuzishi kerak edi. Har bir ko rsatma birliklar va nollarning turli	
ʻ
kombinatsiyasi   sifatida   ifodalangan   opkod   hamda   operand   manzillaridan   iborat
edi.   Shunday   qilib,   protsessor   uchun   har   qanday   dastur   o sha   paytda   birlar   va	
ʻ
nollar ketma-ketligi sifatida qaragan.
Tez  orada  mashina  kodini  yaratish  jarayonini   avtomatlashtirish  mumkinligi
ma lum   bo ldi.   1950-yildan   boshlab   dasturlarni   yozish   uchun   mnemonik   til   —	
ʼ ʻ
Assembler   tilidan   foydalanila   boshlandi.   Assembler   tili   mashina   kodini   inson
uchun   qulayroq   shaklda   ko rsatishga   imkon   berdi:   buyruqlar   va   bu   buyruqlar	
ʻ
bajariladigan   obyektlarni   belgilash   uchun   buyruqning   mohiyatini   aks   ettiruvchi
ikkilik   kodlar   o rniga   harflar   yoki   qisqartirilgan   maxsus   so zlar   qo llanilgan.	
ʻ ʻ ʻ
Masalan,   assembler   tilida   ikkita   raqamni   qo shish   bo yicha   ko rsatma   add   so zi	
ʻ ʻ ʻ ʻ
bilan ifodalanadi, uning mashina kodi 000010 tarzida bo ladi. 	
ʻ
1950-yillarning   o rtalari   dasturlashning   jadal   rivojlanishi   bilan   tavsiflanadi.	
ʻ
Mashina kodlarida dasturlashning roli pasaya boshladi, mashinalar va dasturchilar
o rtasida   vositachi   bo lgan   yangi   turdagi   dasturlash   tillari   paydo   bo la   boshladi.	
ʻ ʻ ʻ
Dasturlash   tillarining   ikkinchi   va   uchinchi   avlodlari   davri   boshlandi.   XX   asrning
50-yillari o rtalariga kelib, birinchi yuqori darajadagi  dasturlash tillari  (high-level	
ʻ
programming   languages)   ni   yaratishga   kirishildi.   Ushbu   tillar   kompyuterning
ma lum   bir   turiga   (mashinadan   mustaqil)   bog lanmagan   edi.   Ularning   har   biri	
ʼ ʻ
uchun o z kompilyatorlari ishlab chiqilgandi. Kompilyatsiya — yuqori darajadagi	
ʻ
manba tilda yozilgan dasturni mashina kodiga yaqin quyi darajali tildagi ekvivalent
dastur (absolyut kod, obyekt moduli, ba zan assembler tili) ga o girishni anglatadi. 	
ʼ ʻ
Birinchi   yuqori   darajadagi   dasturlash   tili   1942-1945-yillarda   Konrad   Suze
tomonidan  yaratilgan   en:   Plankalkül   dasturlash   tili   edi.   Buyruqlarni   kompyuterga
                                                                                                                                                                             3 yetkazish   uchun   mo ljallangan   birinchi   ishlaydigan   dasturlash   tillari   1950-ʻ
yillarning   boshlarida   yozilgan.   1949-yilda   taklif   qilingan   Jon   Mauchlyning   en:
Short   code   elektron   kompyuter   uchun   yaratilgan   birinchi   yuqori   darajadagi
tillardan biri edi. Mashina kodidan farqli o laroq, Short code matematik ifodalarni	
ʻ
tushunarli  shaklda   ifodalaydi.  Biroq, dastur   har  safar   ishga  tushirilganda  mashina
kodiga   tarjima   qilinishi   kerak   edi,   bu   jarayon   ekvivalent   mashina   kodini
ishlatishdan ancha sekinroq davom etardi.
Kurs   ishining   dolzarbligi:   Ushbu   kurs   ishi   hozirgi   kunda   kompyuterda
berilgan   masalalarni   dasturlash   tillari   orqali   yechish   va   dasturda   vorislik   va   shu
kabi tushunchalardan foydalanish kabi vazifalarni o‘rganishga olib keladi.
Kurs   ishining   maqsadi:   C#   dasturlash   tilidan   foydalangan   holda   C#
dasturlash tilida vorislik haqida tushuncha olish. Uni qo‘llash usullarini o‘rganish
va shular asosida misollar ishlash.
Kurs  ishining  obyekti:   C#  dasturlash   tilida  vorislikdan   foydalangan   holda
o‘quvchilarga ma’lumot berishdan iborat
Kurs ishining vazifalari:
1.Obyektga   yo’naltirilgan   dasturlash   (OYD)ning   asosiy   tushunchalari   va
tamoyillarini o’rganish (sinf, obyekt, abstraktsiya, vorislik, polimorfizm).
2.C#   dasturlash   tilida   vorislik   mexanizmlarini   nazariy   va   amaliy   jihatdan
tahlil qilish.
3.Vorislik turlarini (yagona, ko’p bosqichli, iyerarxik, gibrid)misollar orqali
o’rganish.
                                                                                                                                                                             4 4.   C#   dasturlash   tilida   konstruktorlar   va   ularning   vorislikdagi   o‘rnini
aniqlash.
5.   Base   yordamchi   kalit   so‘zidan   foydalanish   orqali   ota   sinf   elementlariga
murojaat qilishni amaliyotda qo‘llash.
6.   Ruxsat   modifikatorlarining   (public,   private,   protected   va   boshqalar)
vorislikdagi ahamiyatini o‘rganish.
7. O‘rganilgan bilimlarni dasturiy misollar orqali mustahkamlash va amaliy
dastur tuzish.
ASOSIY QISM
1 -§.  Obyektga Yo‘naltirilgan Dasturlash haqida
1.1.Obyektga yo’naltirilgan dasturlash(OYD)
Obyektga   yo’naltirilgan   dasturlash(OYD)   -bu   kompyuter   dasturlash   modeli
bo‘lib, bunda ma’lumotlar va ob’yektlar asosida dasturiy ta’minot dizaynini ishlab
chiqiladi. Bu dasturlash paradigmasida bir qator asosiy tushunchalar bor:
Sinf
Obyekt
Abstraksiya
Inkapsulyatsiya
Meros olish
Polimorfizm
OYD . Obyektga   yo‘naltirilgan   dasturlash,   bunda   dasturiy   ta’minot   tuzish
jarayonida   o‘zida   attributlar   va   metodlarni   saqlovchi   obyektlardan   foydalaniladi.
Obyektga yo’naltirilgan dasturlash katta va murakkab dasturiy ta’minotlarni ishlab
chiqish   uchun   juda   qulay   hisoblanadi.   Obyektga   yo‘naltirilgan   dasturlashning
                                                                                                                                                                             5 asosiy   maqsadi   murakkab     kodni   soddalashtirishdan   iborat.Buning   uchun   biz
dasturni mustaqil bloklarga bo‘lamiz va ularni obyektlar deb ataymiz.
1.2.Obyektga yo naltirilgan dasturlashning boshlang ich asosiy tushunchalariʻ ʻ
Obyekt   —   bu   tegishli   holat   va   xatti-harakatlarning   jamlanmasidir.   Dasturiy
ta minot   obyektlari   ko pincha   kundalik   hayotda   uchraydigan   real   dunyo	
ʼ ʻ
obyektlarini   modellashtirish   uchun   ishlatiladi.Ya ni   sodda   tilda   tushuntiriladigan	
ʼ
bo lsa har bir obyektning   xusiyati va holati bo ladi. Masalan, kundalik hayotdagi	
ʻ ʻ
insonni   bir   obyekt   sifatida   qaraydigan   bo lsak,   uning   ko zi   yoki   sochini   rangi,	
ʻ ʻ
uzunligi   bu   uning   xususiyati   va   insonning   nafas   olishi,   harakatlanishi,   kulishi   bu
uning xatti-harakati yoki holati deb ataladi. Dasturlashda ham mana shu inson kabi
obyektlarni tasvirlash uchun obyekt tushunchasidan foydalaniladi.
Sinf   —   C#   dasturlash   tilida   sinf   tushunchasiga   dastlabki   dastur   tuzilgandayoq
duch   kelinadi.Odatda   bu   Program   nomi   bilan   avtomatik   tarzda   hosil
bo‘ladi.Demak,   biz   shu   paytgacha   biror   sinf   ichida   dasturlar   tuzib   keldik.   Sinf
obyektlar   yaratish   uchun   prototip   yoki   shablon.   Ushbu   tushuncha   real   dunyo
obyektining   holati   va   xatti-harakatlarini   modellashtiruvchi   anglatadi.   Ya ni	
ʼ
obyektlar o zlarida ma lumot saqlasalar, sinflar esa obyektlar qanday ma lumotlar	
ʻ ʼ ʼ
saqlay   olishini   belgilab   beradi.   Sinf   turli   amallar   bajariladigan   berilganlar   va
boshqa   turli   kodlardan   tashkil   topadi.Berilganlar   deganda   maydonlar   tushunilsa,
kodlar   deganda   metodlar,konstruktorlar,   destruktorlar,   indeksatorlar,hodisalar,
operatorlar   va   xossalar   tushuniladi.Berilganlar   va   kodlar   umumiy   nom   bilan   sinf
a’zolari deb yuritiladi.Sinf e’lon qilishning umumiy ko‘rinishi:
class   Sinf_nomi ;
{
//maydon e'lon qilish:
modifikator tip maydon_nomi;
//metod e'lon qilish:
                                                                                                                                                                             6 modifikator qaytuvchi_tip metod_nomi( parametrlar )
{
//metod tanasi
}
}
Quyida C# dasturlash tilida sinf qanday yaratilishi 
keltirilgan:
class   Gullar
{
//maydon e'lon qilish:
public   string   Name ;
public   int   Turi ;
public   string   Rangi ;
//metod e'lon qilish:
public   void   GetInfo ()
{
Console . WriteLine ( "Gulning nomi" + Name );
Console . WriteLine ( "Gulning turi" + Turi );
Console . WriteLine ( "Gulning rangi" + Rangi );
}
}
Metod   —   obyektning   harakatini   ifodalovchi   ma’lumot   turlari,   ular
funksiyalarga   o xshaydi   ya ni   amalni   bajaradi.ʻ ʼ   Metodlardan   foydalanishning
afzalligi koddan qayta foydalana olish va optimizatsiya qilishdir. Ya ni siz ma lum	
ʼ ʼ
bir  amalni bajaruvchi  metodni yozasiz  va qachonki  siz o sha amalni bajarmoqchi	
ʻ
bo lsangiz shunchaki o sha metodni chaqirib qo ysangiz kifoya. Bu sizga kodning	
ʻ ʻ ʻ
takrorlanmasligini ta minlab beradi. Bu esa, keyinchalik yozgan kodingizda xatolik	
ʼ
                                                                                                                                                                             7 topilsa,   metod   ichidagi   kodni   o zini   o zgartirish   orqali   xatolik   bartaraf   etilishiʻ ʻ
imkonini yaratadi.Metodlar ushbu ko‘rinishda e’lon qilinadi:  
public   void   Metod_nomi ()
{
Console . WriteLine ();
}
1.3.Obyektga yo naltirilgan dasturlashning to rt ustuni
ʻ ʻ
Abstraktsiya,   inkapsulyatsiya,   meros   olish(vorislik )   va   polimorfizm   —
obyektga   yo naltirilgan   dasturlashning   to rt   muhim   ustuni   hisoblanadi.  	
ʻ ʻ Ya ni	ʼ
obyektga yo naltirilgan dastlashni bularsiz tassavvur qilish mumkin emas.	
ʻ
  Abstraktsiya .
Abstraksiya—bu   obyektga   yo‘naltirilgan   dasturlashda   obyektga   barcha
chegaralarni   aniq   belgilab   beradigan   xususiyatlarni   berishdir.
Ma lumotlarni  abstraktsiyalash	
ʼ   obyektga yo naltirilgan dasturlashning eng muhim	ʻ
va   zarur   xususiyatlaridan   biridir.   Ma lumotlarning   abstraktsiyasi   tashqi   dunyoga	
ʼ
faqat   muhim   ma lumotlarni   taqdim   etish,   qo shimcha   tafsilotlarini   yoki   amalga	
ʼ ʻ
oshirish   jarayonini   yashirishni   anglatadi.   Misol   uchun,   mashina   boshqarayotgan
odamning   hayotiy   misolini   ko rib   chiqamiz.   Odam   faqat   gazni   bosish   mashina	
ʻ
tezligini   oshirishini   yoki   tormozni   bosish   mashinani   to xtatib   qo yishini   biladi,	
ʻ ʻ
lekin u gazni bosganda tezlik qanday ortib borayotganini bilmaydi, u mashinaning
ichki   mexanizmida,   motor   qanday   ishlayotgani   haqida     bilmaydi   va   bilishi   ham
muhim   emas.Abstraktsiya   ham   xuddi   shu   tamoyilga   asoslanadi,   ya ni   biz   qanday	
ʼ
amallar   bajara   olishimizni   bilamiz,   lekin   bu   amallar   qanday   bajarilishini
bilmaymiz. C# dasturlash tilida keltirilgan misol:
abstract    class   Transport
{
                                                                                                                                                                             8 public   void   Move ()
{
Console . WriteLine ( "Transport vositasi 
harakatlanyapti!" );
}
}
Inkapsulyatsiya
Inkapsulyatsiya   ma lumotlarni bir butun sifatida yig ish deb ta riflanadi. Buʼ ʻ ʼ
kod   va   u   boshqaradigan   ma lumotlarni   birlashtiradigan   mexanizm.	
ʼ
Inkapsulyatsiyada   sinfning   o zgaruvchilari   yoki   ma lumotlari   har   qanday   boshqa	
ʻ ʼ
sinfdan   yashiriladi   va   ularga   faqat   ular   e lon   qilingan   sinfning   metodlari   orqali	
ʼ
kirish mumkin . Bunda sinfdagi ma lumotlar boshqa sinflardan yashiringani uchun,	
ʼ
u   ma lumotlarni   yashirish   deb   ham   ataladi.   Umumiy   aytganda   inkapsulyatsiya	
ʼ
ma’lumotlar   va   ushbu   ma’lumotlarni   boshqaradigan   kodni   birlashtiruvchi   va
ikkalasini   ham   tashqi   buzilish   yoki   noto‘g‘ri   foydalanishdan   himoya   qiluvchi
mexanizm. 
using  System;
namespace  maftuna_2307
{
class   Program
{
public   static   void   Main ( string [] args)
{
Osimliklar  osimlik= new   Osimliklar  {Nomi= "Atirgul" };
                                                                                                                                                                             9 osimlik. chiqarish ();
osimlik= new   Gullar {Nomi= "Isiriq" };
osimlik. chiqarish ();
Console . ReadKey ( true );
}
}
class   Osimliklar
{
private   string   nomi ;
public   string  Nomi
{
get { return   nomi ;}
set { nomi =value;}
}
public   void   chiqarish ()
{
Console . WriteLine (Nomi);
}
}
class   Gullar :  Osimliklar
{
                                                                                                                                                                             10 }
}
Meros olish(vorislik)
Meros   olish   (vorislik)—   obyektga   yo naltirilgan   dasturlashning   muhimʻ
ustunidir.   Sinfning   boshqa   sinfdan   xossa   va   xususiyatlarni   olish   qobiliyati   meros
olish   deb   ataladi.   Biz   sinf   yozganimizda,   biz   boshqa   sinflardan   xususiyatlarni
meros qilib olamiz. Shunday qilib, biz sinf yaratganimizda, barcha xususiyatlar va
funksiyalarni   qayta-qayta   yozishimiz   shart   emas,   chunki   ular   unga   ega   bo lgan	
ʻ
boshqa sinfdan meros bo lishi mumkin. Meros foydalanuvchiga kodni iloji boricha	
ʻ
qayta   ishlatish   va   uning   ortiqchaligini   kamaytirish   imkonini   beradi.Vorislikka
quyidagi dasturni misol qilib keltirishimiz  mumkin:
using  System;
namespace  maftuna_2307
{
class   Program
{
public   static   void   Main ( string [] args)
{
B  b= new   B ();
b.xossa= 12 ;
                                                                                                                                                                             11 b. Pechat ();
Console . ReadKey ( true );
}
}
class   A
{
protected   int   a ;  
}
lass   B : A
public   void   Pechat ()
{
Console . WriteLine ( a );
}
public   int  xossa
{
set  { a =value;}
}
}
                                                                                                                                                                             12 Polimorfizm
Polimorfizm   so zi   ko p   shakllarga   ega   bo lishni   anglatadi.   Oddiy   so zlarʻ ʻ ʻ ʻ
bilan   aytganda,   sinfning   metodi   turli   vaziyatlarda   turlicha   amal   bajaradi.
Polimorfizm   ikki   yoki   undan   ortiq   o‘xshash   ,   ammo   texnik   jihatdan   har   xil
masalalarni   yechishda   bir   xil   nomdan   foydalanishga   imkon     beruvchi   xususiyat.
Masalan,   odam   bir   vaqtning   o zida   turli   xil   xususiyatlarga   ega   bo lishi   mumkin.	
ʻ ʻ
Odam   kabi   bir   vaqtning   o zida   ota,   er,   xodim.   Shunday   qilib,   bir   odam   turli	
ʻ
vaziyatlarda   turli   xil   xatti-harakatlarga   ega   va   bunga   polimorfizm   deyiladi.
Polimorfizmning ikki turi bor:
1.Static   polimorfizm   Statik   polimorfizmga   metodlarni   qayta   yuklash   va
operatorlarni   qayta   yuklash   kiradi. Bir   sinfning   ichida   bir   xil   nomli   va   qabul
qiluvchi qiymatlari soni va turi bo yicha farq qiluvchi metodlardan foydalanish. Bu	
ʻ
polimorfizm   asosan   bir   xil   vazifani   bajaruvchi   ko plab   turli   nomdagi   metodlar	
ʻ
yaratilishini oldini olish uchun qo llaniladi. Ya ni murakkablikdan qochish uchun. 	
ʻ ʼ
                                                                                                                                                                             13 2.Dinamik polimorfizm  .  Ikkinchi turdagi polimorfizmda ota sinfdagi metod
bola   sinfda   qayta   yoziladi.   Dinamik   polimorfizm   hosil   qilishda   virtual
metodlar,abstract sinf va metodlardan foydalaniladi.
abstract   class   Shakl
{
public   abstract   void   Chizish ();
}
class   Uchburchak :  Shakl
{
  public   override   void   Chizish ()
{
Console . WriteLine ( "Uchburchak chizing" );
}
}
class   Aylana :  Shakl
{
public   override   void   Chizish ()
{
Console . WriteLine ( "Aylana chizing" );
}
}
1.4.Obyektga yo naltirilgan dasturlash tillari ro yxatiʻ ʻ
                                                                                                                                                                             14 Bugungi   kunda   turli   xil   obyektga   yo naltirilgan   dasturlash   tillari   mavjud.ʻ
Ammo   quyida   ba zi   mashhur   va   keng   qo llaniladigan   obyektga   yo‘naltirilgan	
ʼ ʻ
dasturlash   tillarini   ro yxatga   keltirilgan.TIOBE   indeksiga   ko ra,   eng   yaxshi	
ʻ ʻ
yigirmata obyektga yo‘naltirilgan dasturlash   tillari   Java,   C++, C#,   Python,   R,
PHP,   Visual   Basic.NET,   JavaScript,     Ruby,     Perl,   Object   Pascal,   Objective-C,
Dart,  Swift,  Scala,  Kotlin, Common Lisp, MATLAB va Smalltalk ю
II-BOB. Vorislik
2.1.Vorisli tushunchasi
Vorislik   (inheritance).   Obyektga   Yo‘naltirilgan   Dasturlash   (OYD)ning
muhim tamoyillaridan biridir. Voris orqali bir sinf boshqa sinfning funksionalligini
o‘zlashtirishi   mumkin,   ya’ni   voris   sinflar   umumiy   xususiyatlarni   vorislik   bilan
olgan   holda,   ayrim     xususiyatlarni   qayta   aniqla sh   orqali   yoki   yangi   xususiyat
kiritish orqali  tayanch sinfga o‘zgartirish mumkin. Shu sababli  hosilaviy sinflarni
aniqlash sezilarli ravishda kamayadi, chunki unga tayanch sinfdan farqli elementlar
qo‘shiladi. Vorislik asosan katta loyihalar qilish davomida foydalaniladi.Vorislikda
ishlatiladigan sinflar asosan ikki xil ko’rinishda bo’ladi:
Base   class(   Superclass)   -   asosiy   sinf   yoki   ota   sinf   deb   yuritiladi(   dasturchilar
tomonidan superclass deb ataladi).
Derived   class   (Subclass)   -   olingan   sinf   yoki   farzand   sinf   deyiladi(dasturchilar
tomonidan subclass deyiladi ).
                                                                                                                                                                             15 C # dasturlash tilida vorislik yordamida sinflar quyidagicha e’lon yaratiladi:
class SubClass SuperClass
{
}
2.2.Vorislik turlari
Obyektga yo‘naltirilgan dasturlash tilida vorislik turlarga bo‘linadi.Vorislik turlari:
1. Oddiy(yagona) vorislik (Single inheritance)
2. Ko‘p bosqichli vorislik (Multilevel inheritance)
3. Ko‘p vorislik( Multiple inheritance)
4. Ko‘p darajali vorislik( Multipath inheritance)
5. Ierarxik  vorislik ( Hierarchial inheritance)
6. Gibrid vorislik (Hybrid inheritance)
Oddiy( yagona )vorislik                                                                                           Ko’p vorislik
Ko’p bosqichli vorislik
                                                                                                                                                                             16ClassA
ClassB ClassA
ClassB ClassA
ClassC ClassB
ClassC
ClassA ClassA
ClassB ClassB
ClassBClassC Ko’p darajali vorislik                                                Iyerarhik vorislik
                         Gibrid vorislik
2.3.Ruxsat modifikatorlari va vorislik
C#   dasturlash   tilida   sinf   va   uning   barcha   a’zolari   ruxsat   modifikatoriga
ega.Ruxsat   modifikatorlari   dasturchiga   sinf   va   uning   a’zolaridan   foydalanishga
yoki foydalanishni ta’qiqlashga imkon beradi. Vorislikda ruxsat modifikatorlaridan
foydalanish quyidagicha:
public modifikatori.
Bu   modifikator   yordamida   sinf   va   uning   a’zolariga   dasturning   istalgan
qismidan   murojaat   qilish   va   ulardan   foydalanish   imkoniyatini   yaratadi.   Xatto
bunday   modifikatorga   ega   sinf   va   sinf   a’zolariga   boshqa   dasturdan   turib   ham
murojaat qilish hamda ulardan foydalanish mumkin.
class   Gullar :  Osimliklar
{
                                                                                                                                                                             17ClassC
ClassC ClassC ClassCClassD
ClassA
ClassB ClassC
ClassD ClassE ClassD public   int   boyi ;
}
private modifikatori.
Bu   modifikator   public   modifikatoriga   qarshi   vazifa   bajaruvchi   modifikator
bo‘lib,   uning   yordamida   sinf   va   uning   a’zolaridan   sinfning   tashqarisida
foydalanishni ta’qiqlaydi .
protected modifikatori
Mazkur   ruxsat   modifikatori   sinf   a’zolariga   joriy   sinf   va   uning   voris
sinflarining ixtiyoriy qismidan  murojaat  qilish va foydalanish imkonini beradi.
class   Gullar :  Osimliklar
{
protected   string   rangi ;
}
internal modifikatori
Bu   modifikator   huddi   public   modifikatori   kabidir.Lekin   farqi   shundaki,
internal modifikatori sinf va uning a’zolariga boshqa dasturdan turib foydalanishni
ta’qiqlaydi.
class   Gullar :  Osimliklar
{
internal   string   turi = "bir yillik" ;
}
protected internal modifikatori
                                                                                                                                                                             18 Bu   modifikatorning   boshqa   modifikatorlardan   farqi,   ichki   himoyalangan
a’zolar,bu  turdagi   a’zolar:    sinfning  a’zolari   va  bitta  faylda  joylashgan    hosilaviy
sinfning obyektlari murojaat qilish huquqiga ega.
Endi   asosiy   mavzuimiz   vorislikka   qaytamiz.   Bizda   alohida   shaxsni   tavsiflovchi
quyidagi Inson sinfi mavjud bo‘lsin:
class   Inson
{
public   string   _ism ;
public   string  Inson_ismi
{
get { return     _ism ;}
set { _ism = value ;}
}
public   void   chiqarish ()
{
Console . WriteLine (Inson_ismi);
}
}
Ammo   korxona   xodimini   tavsiflovchi   sinf   kerak   bo‘lib   qoldi   deylik   -   bu
Xodim   sinfi.   Ushbu   sinf   Inson   sinfi   bilan   bir   xil   funksiyani   amalga   oshirishi
sababli,   xodim   ham   o'z   navbatida   shaxs   bo'lganligi   sababli,   Xodim   sinfini   Inson
sinfining vorisi (yoki sinf osti) ga aylantirish mantiqan to‘g‘ri bo‘ladi. Bu sinf o‘z
navbatida ajdod (yoki superklass) tayanch sinf deyiladi.
                                                                                                                                                                             19 class   Xodim   :   Inson
{
}
Ikki nuqtadan keyin ushbu sinf uchun tayanch sinfni ko‘rsatiladi. Inson sinfi
Xodim  sinfi  uchun tayanch sinf  hisoblanadi  va shuning uchun  Xodim  sinfi  Inson
sinfining barcha xususiyatlarni, metodlarni, maydonlarni meros qilib oladi. Meros
bo‘lib   o‘tmaydigan   yagona   narsa   bu   tayanch   sinfning   konstruktorlari.   Xodim
sinfining obyekti o‘z navbatida  Inson sinfining ham obyekti hisoblanadi.
class   Program
{
public   static   void   Main ( string [] args)
{
Inson  inson= new   Inson {Inson_ismi= "Feruza" };
inson. chiqarish ();
inson= new   Xodim {Inson_ismi= "Abror" };
inson. chiqarish ();
Console . ReadKey ( true );
}
}
Xodim sinfining obyekti o‘z navbatida Inson sinfining ham obyekti bo‘la oladi.
Kelishuv bo‘yicha, Vorislik oshkor ravishda ko‘rsatilmasa  ham, barcha sinflar
Object   tayanch   sinfining   vorisi   hisoblanadi.   Shuning   uchun   ham,   yuqorida
keltirilgan Inson hamda Xodim  sinflari  o‘zlarining metodlaridan tashqari, Obyekt
                                                                                                                                                                             20 sinfining  quyidagi   metodlariga  ham  ega:   ToString(),  Equals(),  GetHashCode()   va
GetType(). Kelishuv bo‘yicha barcha sinflar voris qilib olinishi mumkin. Biroq, bu
yerda bir qator cheklovlar mavjud: Inson, Xodim va Shifokor sinflari:
Voris sinfning ruxsat  modifikatori asosiy sinfning ruxsat  modifikatoriga o‘xshash
yoki   undan   chekliroq   bo‘lishi   kerak.   Masalan,   agar   asosiy   sinf   internal   ruxsat
modifikatoriga   ega   bo‘lsa,   u   holda   voris   sinf   internal   yoki   private   ruxsat
modifikatoriga ega bo‘lishi mumkin, lekin public modifikatoriga emas.
Agar   sinf   sealed   modifikatori   bilan   e’lon  qilingan   bo‘lsa,   u   holda    ushbu   sinfdan
voris sinf hosil qilib bo‘lmaydi:
sealed   class   Admin
{
}
To‘plamli vorislik qo‘llanilmaydi,sinf faqat bitta sinfdan voris olishi mumkin.
Shuni hisobga olish kerakki,agar  tayanch  va hosilaviy  sinflar har xil loyihalarda
bo‘lsa,unda   hosilaviy   sinf   faqat   public   modifikatoriga   ega   bo‘lgan   sinfdan   voris
olinishi mumkin.
static modifikatoriga ega sinfdan ham voris sinf hosil qilib bo‘lmaydi
                                                                                                                                                                             21 III-BOB.   Vorislikda konstruktorlardan foydalanish
3.1.Konstruktor tushunchasi
Oddiy   usullardan   tashqari   sinflarda   konstruktor   deb   nomlangan   maxsus
usullar ham qo'llaniladi   Ushbu sinfning yangi obyekti yaratilganda konstruktorlar
chaqiriladi.   Konstruktorlar   obyektni   ishga   tushirishni   amalga   oshiradilar   va
sinflarni   initsializatsiyalashga   imkoniyat   beradi,   sinfning   obyektini   hosil
qilganimizda,   u   xotiradan   joy   ajratadi.   Ya’ni   konstruktor   –   bu   oddiy   (struktura
bo‘yicha)   funksiya,   kirish   ma’lumotlarini   olib,   sinf   maydonlarini   o‘zlashtiradi.
Konstruktor hosil qilingan har qaysi obyekt uni chaqiradi. 
Konstruktor   -   bu   sinfning   har   bir   yangi   obyekti   yaratilayotganda
bajariladigan va uning nomi sinf nomi bilan ustma-ust tushadigan sinfning maxsus
metodidir.   Konstruktorlar   biz   biladigan   metodlardan   bir   farqli   jihati   bor   bu   esa
hech   qanday   qiymat   qaytarmaydi:   na   int   tipi,   na   float   tipi,   na   double   tipini   va
hattoki void tipini ham. 
                                                                                                                                                                             22 3.2.Standart va parametrli konstruktorlar
Konstruktorlar parametriga qarab 2 turga bo‘linadi.Bular:
1.Standart kontruktorlar
2.Parametrli konstruktorlar
C# tilida biz agar konstruktor yozish esimizdan chiqib qoladigan bo‘lsa o‘zi
jimlik   bo‘yicha   sinf   bitta   konstruktorni   yaratadi   ammo   u   bizga   ko‘rinmaydi.
Bunday   konstruktorlarni   standart   konstruktorlar   ham   deb   atashadi.   Bunday
konstruktorning parametrlari va tanasi yo‘q. Agar dasturchi tomonidan konstruktor
aniqlansa,   kompilyator   tomonidan   hech   qanday   konstruktor   aniqlanmaydi.
Konstruktorlar   asosan   obyektning   boshlang‘ich   qiymatlarini   ifodalash   uchun
ishlatiladi.   Parametrli   konstruktorlar   ichida   aynan   ajralib   turuvchi   konstruktor
nusxalovchi   konstruktor   xisoblanadi.Bu   konstruktorning   vazifasi   bir   obyektdan
boshqasiga nusxa olish uchun ishlatiladi.
  class   Inson
{
public   string   _kasbi ;
public   int   _boyi ;  //maydon
public   int   _ogirligi ; //maydon
public   string   _ism ;
public   string  Kasbi
{
get { return     _kasbi ;}
set { _kasbi =value;}
                                                                                                                                                                             23 }
public   string  Inson_ismi
{
get { return     _ism ;}
set { _ism =value;}
}
public   int  Boyi     //xossa
{
get { return     _boyi ;}
set { _boyi =value;}
}
public   int  Ogirligi       //xossa
{
get { return     _ogirligi ;}
set { _ogirligi =value;}
}
public   Inson ()  //1-konstruktor
{
}
public   Inson ( string  kasbi, int  boy, int  ogirlik)  //2-
konstruktor
{
                                                                                                                                                                             24 _kasbi =kasbi;
_boyi =boy;
_ogirligi =ogirlik;
}
}
IV-BOB.   Vorislikda  base  yordamchi so‘zidan foydalanish
4.1.Base sozining umumiy vazifasi
Konstruktorlardan   tashqari   base   kalit   so‘zi   orqali   ham   ota   sinfning   boshqa
elementlariga   murojaat   qilish   mumkin.   base   kalit   so‘zidan   foydalanib,   biz   asosiy
sinfga murojaat qilamiz. Bizning holatda, Inson sinfi konstruktorida biz kasbi,bo‘yi
va   og‘irligini   o‘rnatishimiz   kerak.   Ammo   biz   kasbini   base(name)   iborasidan
foydalanib,   voris   sinf   konstruktoriga,   ya’ni   Xodim   sinfining   konstruktoriga
o‘rnatishga o‘tkazamiz.
4.2. Amaliy misollar bilan tushuntirish
class   Program
{
public   static   void   Main ( string [] args)
{
                                                                                                                                                                             25 Inson  inson1= new   Inson ();
Inson  inson2= new   Inson ( "Hamshira" , 175 , 50 );
inson1.Boyi= 180 ;    
Xodim  xodim1= new   Xodim ( "Tikuvchi" , 123 , 177 , 67 , 2300000 );
xodim1.Maosh= 3000000 ;
Console . ReadKey ( true );
}
}
class   Inson
{
public   string   _kasbi ;
public   int   _boyi ;  //maydon
public   int   _ogirligi ;   //maydon
public   string   _ism ;
public   string  Kasbi
{
get { return     _kasbi ;}
set { _kasbi =value;}
}
public   string  Inson_ismi
{
                                                                                                                                                                             26 get { return     _ism ;}
set { _ism =value;}
}
public   int  Boyi     //xossa
{
get { return     _boyi ;}
set { _boyi =value;}
}
public   int  Ogirligi       //xossa
{
get { return     _ogirligi ;}
set { _ogirligi =value;}
}
public   Inson ()  //1-konstruktor
{
}
publi c   Inson ( string  kasbi, int  boy, int  ogirlik)  //2-
konstruktor
{
_kasbi =kasbi;
_boyi =boy;
_ogirligi =ogirlik;
                                                                                                                                                                             27 }
}
class   Xodim  : Inson
{
public   int   _id ;
public   double   _maosh ;  //maydon
public   double  Maosh  //konstruktor
{
get { return   _maosh ;}
set { _maosh = value ;}
}
public   Xodim ( string  kasbi, int  id, int  boy, int  
ogirlik, int  maosh):
base(kasbi,boy,ogirlik)
{
_id =id;
_maosh =maosh;
} }
                                                                                                                                                                             28 XULOSA
XXI   asrni   kompyuter   asri   deb   bekorga   aytishmagan   ekan.   Men   bu   kurs
ishimni   bajarish   davomida   kompyuter   texnikasi   naqadar   insoniyatga   foydali
ekanini   va   ajoyib   funksiyaga   ega   ekanligini   bilib   oldim.   C#   dasturlash   tili   esa
ommabop,hamma   uchun   eng   tushunarli   til   ekan.   C#   dasturlash   tili   dastur   tuzish
uchun qulay vosita bo‘lib, kompyuterda dastur yaratish ishlarini avtomatlashtiradi,
xatoliklarni   kamaytiradi  va  dastur  tuzuvchi  mehnatini   yengillashtiradi.  C#  dasturi
zamonaviy   visual   loyihalash   texnologiyasi   asosida   ob`yektga   yo`naltirilgan
dasturlash   tili   hisoblanadi.   Hozirgi   kunda   C#   dasturlash   tili   yuqori   bosqichli
dasturlash   tillari   ichida   eng   samaralisi   hisoblanadi.   Bu   til   C   va   C++   dasturlash
tillarining   mantiqiy   davomi   bo‘lib,   Java   dasturlash   tilining   ham   bir   qancha
imkoniyatlarini   o’zida   mujassamlashtiradi.   Bugunga   kelib,   juda   ko‘p   rivojlangan
davlatlarda ishlab chiqarilayotgan dasturlar asosini C# dasturlash tili tashkil qiladi.
Tez sur’atlarda rivojlanib borayotgan hozirgi  davrni zamonaviy texnologiyalar va
                                                                                                                                                                             29 kompyuter   qurilmalarisiz   tasavvur   qilish   qiyin.   Kompyuter   asosini   esa   albatta
dasturlar   tashkil   etadi,   jamiyat   ahlining   deyarli   barcha   qatlami   axborot
kommunikatsion   texnologiyalaridan   keng   foydalanmoqda.   Shunday   yo‘nalishlar
qatoriga   muhandislik,   iqtisodiyot,   statistika   kabi   yo‘nalishlarni   kiritish   mumkin.
Mazkur kurs shida berilgan nazariy va amaliy topshiriqlar bilan ishlash natijasida
mazkur dasturni yaratishda mantiqiy amallar va dasturlash texnologiyasi bo‘yicha
bilimlarim   yanada   rivojlandi.   Ushbu   kurs   ishini   bajarish   mobaynida   dasturlash
fanidan   olgan   bilimlarimni   yanada   mustahkamlab   bordim   va   yana   yangi   qiziqarli
ma’lumotlarga ega bo’ldim. Amaliyotda qo‘llab dasturimning natijalarini oldim.
Hozirgi   kunda   O‘zbekistonda   informatsion   texnologiyalar   va   axborot
texnologiyalarini   rivojlantirish   yo‘lida   bir   talay   ishlar   amalga   oshirilmoqda.   Buni
birgina   bu   sohada   ishlab   chiqilgan   qaror,   qonun   va   farmonlar   misolida   ham
ko‘rishimiz   mumkin.   Bizga   fan   sifatida   o‘tilayotgan   “Algoritmik   tillar   va
dasturlash   ”   fani   ham   so‘zimizning   yaqqol   isboti   bo‘la   oladi.   Hozirda   biz
hayotimizni   kompyutersiz   tasavvur   qila   olmaganimizdek,   dunyodagi   barcha
kattayu-kichik   ishlarning   hammasi   avtomatlashtirilgan   tizimga   asta-sekinlik   bilan
o‘tib   bormoqda.   Albatta,   bunday   sistemaga   o‘z-o‘zidan   o‘tib   bo‘lmaydi.   Bunda
bizga   bir   nechta   dasturlash   tillari   yordam   beradi.   Shunday   ekan   men   ham   kurs
ishimni   dasturini   tuzish  mobaynida   dasturlash  tillaridan  biri  C#   dasturlash  tilidan
foydanlandim.   Bu   kurs   ishini   tayyorlash   jarayonida   C#   dasturlash   tili   haqida
umumiy   ma’lumotlarni,   qanday   shakllangan   va   bugungi   kungacha   rivojlanish
yo‘lini o‘rganib chiqdim. Visual   Studioda ishlashni va bunda consol va windows
dasturlarni   yaratishni   o‘rgandim.   Bulardan   amaliy   dasturlarni   tuzishda   qanday
holatlarda   foydalanishni   amaliyotda     ko‘rib   chiqdim.   Yana   shu   o‘rinda   aytish
lozimki   kurs   ishi   mobaynida   consol   va   windows   dasturlarni   o‘rganib   oldim.
Umumiy   qilib   aytganda   bu   turdagi   dasturlarni   C#   da   yaratish   haqida   yanada
to‘liqroq o‘rgandim va ma'lumotlarga ega bo‘ldim. 
                                                                                                                                                                             30 FOYDALANILGAN ADABIYOTLAR
1. Dive into design patterns by Alexandr Shvets  50-bet.  
2. Svetlin   Nakov,   Veselin   Kolev.   Fundamentals   of   Computer   Programming
with C#. 2013, 923- б .
3. Джозеф   Албахари   и   Бен   Албахари.   C#   6.0   Справочник .   Полное
описание языка . Москва. Санкт-Петербург. Киев.  2016, 151-б.
4. Борис   Пахомов .   C#   для   начинающих.   Санкт-Петербург«БХВ-
Петербург» .  2014 , 293-б.
                                                                                                                                                                             31 INTERNET SAYTLARI:
1. https://docs.oracle.com    . 
2. https://www.geeksforgeeks.org    . 
3. https://www.tiobe.com/tiobe-index/    .
1. https://www.metanit.com/   
2. https://www.aim.uz/   
3. https://www.ziyonet.uz/   
                                                                                                                                                                             32 Ilova:
Animals.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
namespace Vorislik
{
                                                                                                                                                                             33     public abstract class Animal
    {
        public string Name { get; set; }
        public string ImagePath { get; set; }
        public string SoundPath { get; set; }
        public string Category { get; set; } // 
"O‘txo‘r", "Go‘shtxo‘r"
        public Animal(string name, string imagePath, 
string soundPath, string category)
        {
            Name = name;
            ImagePath = imagePath;
            SoundPath = soundPath;
            Category = category;
        }
        /// <summary>Ovoz faylini ijro etadi.</summary>
        protected void PlaySound()
        {
            var player = new MediaPlayer();
                                                                                                                                                                             34             player.Open(new Uri(SoundPath, 
UriKind.Relative));
            player.Volume = 1.0;
            player.Play();
        }
        public abstract void Speak();
    }
    // ---------- O‘TXO‘R ----------
    public class Cow : Animal
    {
        public Cow() : base("Sigir", "Images/cow.jpg", 
"Sounds/cow.mp3", "O‘txo‘r") { }
        public override void Speak() => PlaySound();
    }
    public class Horse : Animal
    {
        public Horse() : base("Ot", "Images/horse.jpg",
"Sounds/horse.mp3", "O‘txo‘r") { }
        public override void Speak() => PlaySound();
                                                                                                                                                                             35     }
    public class Sheep : Animal
    {
        public Sheep() : base("Qo‘y", 
"Images/sheep.jpg", "Sounds/sheep.mp3", "O‘txo‘r") { }
        public override void Speak() => PlaySound();
    }
    public class Goat : Animal
    {
        public Goat() : base("Echki", 
"Images/goat.jpeg", "Sounds/goat.mp3", "O‘txo‘r") { }
        public override void Speak() => PlaySound();
    }
    public class Deer : Animal
    {
        public Deer() : base("Bug‘u", 
"Images/deer.jpg", "Sounds/deer.mp3", "O‘txo‘r") { }
        public override void Speak() => PlaySound();
    }
                                                                                                                                                                             36     // ---------- GO‘SHTXO‘R ----------
    public class Lion : Animal
    {
        public Lion() : base("Sher", "Images/lion.jpg",
"Sounds/lion.mp3", "Go‘shtxo‘r") { }
        public override void Speak() => PlaySound();
    }
    public class Tiger : Animal
    {
        public Tiger() : base("Yo‘lbars", 
"Images/tiger.jpg", "Sounds/tiger.mp3", "Go‘shtxo‘r") {
}
        public override void Speak() => PlaySound();
    }
    public class Wolf : Animal
    {
                                                                                                                                                                             37         public Wolf() : base("Bo‘ri", 
"Images/wolf.jpg", "Sounds/wolf.mp3", "Go‘shtxo‘r") { }
        public override void Speak() => PlaySound();
    }
}
MainViewModel.cs :
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace Vorislik
{
    public class MainViewModel : INotifyPropertyChanged
    {
        public ObservableCollection<Animal> AllAnimals 
{ get; set; }
                                                                                                                                                                             38         public ObservableCollection<Animal> 
FilteredAnimals { get; set; }
        private string _selectedCategory;
        public string SelectedCategory
        {
            get => _selectedCategory;
            set { _selectedCategory = value; 
OnPropertyChanged(); FilterAnimals(); }
        }
        public List<string> Categories { get; set; } = 
new List<string> { "Barchasi", "O‘txo‘r", 
"Go‘shtxo‘r" };
        public MainViewModel()
        {
            _selectedCategory = "Barchasi";
            AllAnimals = new 
ObservableCollection<Animal>
        {
            new Cow(),
            new Lion(),
                                                                                                                                                                             39             new Sheep(),
            new Tiger(),
            new Horse(),
            new Goat(),
            new Deer(),
            new Wolf(),
        };
            FilteredAnimals = new 
ObservableCollection<Animal>(AllAnimals);
        }
        private void FilterAnimals()
        {
            FilteredAnimals.Clear();
            foreach (var animal in AllAnimals)
            {
                if (SelectedCategory == "Barchasi" || 
animal.Category == SelectedCategory)
                    FilteredAnimals.Add(animal);
            }
        }
                                                                                                                                                                             40         public event PropertyChangedEventHandler 
PropertyChanged;
        protected void 
OnPropertyChanged([CallerMemberName] string name = 
null) =>
            PropertyChanged?.Invoke(this, new 
PropertyChangedEventArgs(name));
    }
}
MainWindow.xaml:
<Window x:Class="Vorislik.MainWindow"
        
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre
sentation"
        
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        
xmlns:d="http://schemas.microsoft.com/expression/blend/
2008"
        
xmlns:mc="http://schemas.openxmlformats.org/markup-
compatibility/2006"
        xmlns:local="clr-namespace:Vorislik"
                                                                                                                                                                             41         mc:Ignorable="d"
        Title="MainWindow" Height="500" Width="858">
    <DockPanel Margin="20" Background="#FAFAFA">
        <!-- Filter Panel -->
        <StackPanel Orientation="Horizontal" 
DockPanel.Dock="Top" Margin="0,0,0,20" 
VerticalAlignment="Top">
            <TextBlock Text="Toifa:"
                   FontWeight="Bold"
                   VerticalAlignment="Center"
                   FontSize="16"
                   Foreground="#333" />
            <ComboBox ItemsSource="{Binding 
Categories}"
                  SelectedItem="{Binding 
SelectedCategory}"
                  Width="200" Height="34" 
Margin="10,0,0,0"
                  Padding="8,2"
                  FontSize="14"
                  Background="White"
                  BorderBrush="#CCC"
                  BorderThickness="1"
                                                                                                                                                                             42                   Foreground="#333" />
        </StackPanel>
        <!-- Animal Cards Grid -->
        <ScrollViewer 
VerticalScrollBarVisibility="Auto">
            <ItemsControl ItemsSource="{Binding 
FilteredAnimals}">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel IsItemsHost="True" 
Margin="0,0,0,10" />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border Background="White"
                            CornerRadius="12"
                            BorderBrush="#E0E0E0"
                            BorderThickness="1"
                            Margin="10"
                                                                                                                                                                             43                             Width="140" Height="180"
                            SnapsToDevicePixels="True">
                            <Border.Effect>
                                <DropShadowEffect 
Color="#888" BlurRadius="6" ShadowDepth="2" 
Opacity="0.2"/>
                            </Border.Effect>
                            <StackPanel 
MouseLeftButtonDown="Animal_Click"
                                    Cursor="Hand"
                                    ToolTip="{Binding 
Name}">
                                <Image Source="{Binding
ImagePath}"
                                   Height="100" 
Width="Auto"
                                   Margin="10"
                                   
Stretch="UniformToFill"
                                   
HorizontalAlignment="Center"/>
                                <TextBlock 
Text="{Binding Name}"
                                                                                                                                                                             44                                        
HorizontalAlignment="Center"
                                       
FontWeight="Bold"
                                       FontSize="15"
                                       Margin="5,8,5,0"
                                       
Foreground="#444"/>
                            </StackPanel>
                        </Border>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </ScrollViewer>
    </DockPanel>
App.xaml:
<Application x:Class="Vorislik.App"
             
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre
sentation"
             
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                                                                                                                                                                             45              xmlns:local="clr-namespace:Vorislik"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <DropShadowEffect x:Key="DropShadowEffect"
                      Color="Black"
                      Opacity="0.2"
                      ShadowDepth="3"
                      BlurRadius="6"/>
    </Application.Resources>
</Application>
                                                                                                                                                                             46

C# dasturlash tilida vorislikdan foydalanish

Sotib olish
  • O'xshash dokumentlar

  • Konus kesimlari va ularning fokal xossalari
  • WPFda Application sinfi va boshqaruv elementlari shablonini yaratish
  • Algoritmik tillar va dasturlash
  • UWP(Win Ui) da grafika va multimedialar bilan ishlash
  • O’quv jarayonini rejalashtirish tizimi. O’quv jarayonini tematik va har bir darsni rejalashtirish

Xaridni tasdiqlang

Ha Yo'q

© Copyright 2019-2025. Created by Foreach.Soft

  • Balansdan chiqarish bo'yicha ko'rsatmalar
  • Biz bilan aloqa
  • Saytdan foydalanish yuriqnomasi
  • Fayl yuklash yuriqnomasi
  • Русский