DEV Community

umida5
umida5

Posted on

Value Type and Reference Type

Value type (Qiymat turlari)
Qiymat turlari to'g'ridan-to'g'ri qiymatlarni saqlaydi. Ular stack xotirasida joylashgan va o'zgaruvchilarga qiymatlarni ko'chirishda yangi nusxalar yaratiladi. Misollar:

  • int
  • float
  • double
  • char
  • struct

Value Type xususiyatlari:

  • Stack xotirasida saqlanadi.
  • Har bir o'zgaruvchi o'z qiymatini mustaqil saqlaydi.
  • Bir o'zgaruvchini boshqasiga o'zlashtirganda qiymat nusxasi o'rnatiladi.
  • Null qiymat qabul qilmaydi (agar nullable bo'lmasa).
  • Turli qiymat o'zgarishlari boshqa o'zgaruvchilarga ta'sir qilmaydi.
int a = 10;
int b = a; // b endi 10, a ga bog'liq emas
Enter fullscreen mode Exit fullscreen mode

Havola turlari (Reference Types)
Havola turlari ma'lumotlar haqidagi ma'lumotlarni saqlaydi va ularni heap xotirasida joylashtiradi. O'zgaruvchilar havolalarni saqlaydi, shuning uchun bir o'zgaruvchini o'zgartirish boshqa o'zgaruvchilarga ham ta'sir qilishi mumkin. Misollar:

  • class
  • string
  • array
  • delegate
class Person 
{

    public string Name;
}

Person p1 = new Person();
p1.Name = "Ali";

Person p2 = p1; // p2 ham p1 ga bog'langan
p2.Name = "Vali"; // endi p1.Name ham "Vali" bo'ladi

Enter fullscreen mode Exit fullscreen mode

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay