DEV Community

JohnnySenior
JohnnySenior

Posted on

C# da safe va unsafe code haqida

Assalomu alekum do'stlar bugun sizlarga C# dasturlash tilida safe va unsafe codelarning farqini tushintirishga harakat qilaman.

Safe codga tarif:
.Net dasturlarini ishga tushiradigan virtual mashina bor uning nomi CLR => Common Language Runtime deyiladi. Mana shu mashina orqali compile qilinadigan va execute qilinadigan jamiyki codelarni safe code deyiladi.

Safe code ning bazi sifatlarini ko'rib chiqamiz.

  • Safe code CLR tomonidan qo'yilgan cheklovlarga va
    • Xotirani boshqarishdagi qoidalrga
    • tiplarning xafsizligi qoidalariga
    • exceptionlarni handl qilish qoidalariga
    • xafsizlik qoidalariga

amal qilishga majbur.

  • Safe code .Net tomonidan qo'llab quvvatlanadigan barcha web dasturlar, mobil dasturlar, serverlarda ishga tusha oladi.
  • Safe codelarni debug qilish va maintain qilish juda oson bo'ladi.
  • Safe code shuningdek xatolardan qochishda ham qulay ular:
    • xotira isrofi
    • overflow
    • nul pointer

larda uchraydigan xatoliklar.

  • Safe code muqobil va dasturchilar tomonidan tavsiya etiladigan code yozish usulidir.

Unsafe code ga tarif:
Unsafe code bu CLR tomonian boshqarib bo'lmaydigan lekin dasturchilar tomonidan boshqarsa bo'ladigan code hisoblanadi.

Unsafe code ning bazi sifatlarini ko'rib chiqamiz.

  • Unsafe code pointer dan foydalanib xotira bilan to'g'tidan to'g'ri ishlash imkoniyatini beradi. Shu o'rinda pointer =>
    • o'zgaruvchining address ini saqlaydigan o'zgaruvchidir.
  • Unsafe code ham xotira bloklarini ajrata oladi va pointerga kerak bo'ladigan native funksiyalrni chaqirib ishlata oladi.
  • Unsafe code bazi holatlarda safe code ga nisbatan tez va samarali bo'la oladi, jumladan low-level ma'lumotlar structurasida.
  • Shuni ham unitmaslik kerakki unsafe code bazi risklarga olib kelishi mumkin.
    • xafsizlik
    • muqobillik
    • xotira buzilishi
    • crushlar
    • ma'lumotlar fosh bo'lishi
  • Unsafe code faqatgina ishonchli environment larda ishga tushirilishi kerak.
  • Unsafe code C# da unsafe modifier bilan yozilishi kerak.
  • Unsafe code ehtiyotkorlik bilan va juda zarur bo'lgan holdagina ishlatilishi kerak.

Top comments (0)