O`zgaruvchilarga qiymat o`zlashtirish Yangi o`garuvchi hosil qilish uchun avval uning tipini aniqash kerak yoki avvaldan mavjud tiplardan foydalanish kerak. O`zgaruvchini ishlatishdan oldin unga nom berish va uning tipini ko`rsatish lozim. Uni e`lon qilish vaqtida unga qiymat o`zlashtirish, yoki dastur bajarilishi davomida qiymat o`zlashtirish mumkun. Qiymat o`zlashtirish uchun “=” operatoridan foydalaniladi:
Dastur ishining natijasi quyidagicha:
e'lon qilish vaqtida qiymat o'zlashtirilgandan keyin: 10
myInt ga qiymat o'zlashtirilgandan keyin: 5
Har bir o`garuvchining qiymatini ishlatishdan oldin unga qiymat o`zlashtirish kerak. M:
Bu vaqtda kompilyator xatolik haqida xabar beradi.
Ma’lumot turlari (tiplar)
C# tiplashgan til hisoblanadi. Har bir obyektni hosil qilishda uning tipini e`lon qilish zarur (masalan butun son, haqiqiy son, forma, oyna, tugma(knopka), satr va boshqalar). Shu orqali kompilyator xatolardan holi bo`lishni, ya`ni o`zgaruvchi qabul qilishi mumkin bo`lgan qiymatlarni qabul qilishini ta`minlaydi. Obyekt tipi kompilyatorga obyekt o`lchamini (masalan int tipidagi obyekt xotiradan 4 bayt egallaydi), uning xususiyatlarini (masaslan forma ko`rinadigan va ko`rinmaydigan bo`lishi mumkin) ko`rsatadi.
Xuddi C++ va Javatillari kabi C# da ham tiplar 2 guruhga ajratiladi: Oldindan aniqlangan tilning ichki tiplari va foydalanuvchi (dasturchi) tomonidan aniqlanadigan tiplar.
C# yana tiplarni 2 kategoriyaga bo`ladi: o`lchovli tiplar va ko`rsatqichli tiplar. Ular orasidagi asosiy farq qiymatlarini xotirada saqlash usuli. O`lchovli tiplar qiymatlarini stekda saqlanadi. Ko`rsatqichli tiplar obyektning faqat manzilini stekda, o`zini esa ko’chada saqlaydi. Ko’cha dasturning asosiy xotirasi hisolanadi. Ko’chaga murojaat qilish stekka murojaat qilishdan ko`ra sekin. Katta obyektlarni ko’chada saqlash ko`pgini imkoniyatlarga ega. Bu haqda keyinchalik to`xtalamiz.
Stek ma`lumotlar strukturasi. U elementarni “birinchi kelgan, oxirgi ketadi” prinsipi bo`yicha saqlaydi. Stek prosessor tomonidan qo`llab quvvatlanadigan xotira sohasiga tegishli. Unda lokal o`zgaruvchilar saqlanadi. Stekka murojaat umumiy xotira sohasiga murojaatga nisbatan bir necha marotaba tezroq. Shuning uchun ma`lumotlarni stekda saqlash dasturning ishlash tezligini oshiradi. C# da o`lchovli tiplar(masalan butun sonlar) qiymatini stekda saqlaydi va unga murojaat o`zgaruvchi nomi bilan amalga oshiriladi. Ko`rsatqichli tiplar ko’chada joylahadi. Ko’cha kompyuterning tezkor xotirasi. Unga murojaat stekka murojaatga nisbatan sekinroq. Agar obyekt ko’chada joylashgan bo`lsa, o`zgaruvchi uning faqat manzilini saqlaydi. Bu manzil stekda saqlanadi. Manzil orqali dastur obyektga murojaat qiladi. Stekda joylashgan har bir o`zgaruvchi ko`rinish sohasidan chiqqan zahoti “сборщик мусора” tomonidan o`chiriladi. Funksiya tanasida e`lon qilingan lokal o`zgaruvchilar runksiya ishini tugatishi bilan o`chiriladi. Ko’chada joylashgan obyektlar ham “сборщик мусора” tomonidan o`chiriladi. Bu obyektni ko`rsatib turgan barcha ko`rsatkichlar bilan obyekt orasidagi aloqa uzilganda amalga oshiriladi.