|
Reja:
1. Qiymat turlari. Qiymatlarni nusxalash
|
bet | 95/154 | Sana | 08.01.2024 | Hajmi | 5,29 Mb. | | #131939 |
Bog'liq MajmuaReja:
1. Qiymat turlari. Qiymatlarni nusxalash
2. ref va out kalit so’zlari
3. ref kalit so’zidan foydalanish
4. out kalit so’zidan foydalanish
5. Kortejlar. Sanab o’tiluvchi tur
Oldingi mavzularda quyidagi elementar berilganlar turlarini ko‘rib chiqdik: int, bayt, double, string, object va boshqalar. Bundan tashqari, murakkab turlar mavjud: strukturalar (struct), sanab o‘tiluvchi turlar (enum), sinflar (class). Ushbu barcha ma’lumot turlari qiymat turlari deb ham ataladigan qiymat turlari (value types) va havola turlari (reference types) ga bo‘linishi mumkin. Ularning orasidagi farqni tushunish muhimdir.
Qiymat turlari:
Butun sonlar turlari: (bayt, sbayt, short, ushort, int, uint, long, ulong)
Suzuvchi nuqta turlari: (float, double, decimal)
Tur: bool
Tur: char
Sanab o‘tiluvchi tur: enum
Strukturalar: struct
Havola turlari:
Tur: object
Tur: string
Sinflar: class
Interfeyslar: interface
Delegatlar: delegate
Ularning orasidagi farqni ajratish uchun .NET da xotirani tashkil qilishni tushunish kerak. Bu yerda, xotira ikki turga bo‘linadi: stek va to‘p (mavjud xotiraning qolgan qismi). Qiymat turlarini ifodalovchi metod parametrlari va o‘zgaruvchilari o‘z qiymatini stekga o‘tkazadi. Stek - bu pastdan yuqoriga o‘sadigan berilganlar strukturasi: qo‘shilgan har bir yangi element avvalgisining ustiga joylashtiriladi.
Dastur birinchi marta bajarish uchun ishga tushirilganda, stek ko‘rsatkichi stek uchun ajratilgan xotira blokining oxiriga o‘rnatiladi. Berilganlar stekga o‘tkazilganda, ko‘rsatgich qayta o‘rnatiladi, shunda u yana yangi bo‘sh joyga ishora qiladi. Har bir alohida metod chaqirilganda, stekda uning parametrlari va o‘zgaruvchilari qiymatlari saqlanadigan xotira maydoni yoki stek ramkasi ajratiladi.
Misol uchun:
class Program
{
static void Main(string[] args)
{
|
| |