Junior
Фарқи байни навъҳои ишора ва навъҳои арзишӣ чист?
sobes.tech AI
Ҷавоб аз AI
Фарқиятҳо дар усули нигоҳдорӣ ва интиқоли маълумот:
-
Типҳои арзишӣ (Value Types):
- Ба таври мустақим дар ҷойи ки онҳо эълон шудаанд (дар стек ё дар дохили намунаи типи арзишӣ) нигоҳ дошта мешаванд.
- Ҳангоми таъин кардан ё гузаронидан бо арзиш, нусхаи арзиш сохта мешавад.
- Ба он типҳои primitives (int, float, bool ва ғайра), структураҳо (struct) ва enumeration (enum) дохил мешаванд.
- Баста (sealed) мебошанд ва наметавонанд мерос гиранд.
-
Типҳои истинодӣ (Reference Types):
- Дар heap нигоҳ дошта мешаванд. Варақаи тағйирёбанда на арзиш, балки истинод ба суроға дар heap дорад.
- Ҳангоми таъин кардан ё гузаронидан бо арзиш, танҳо истинод нусхабардорӣ мешавад, на объект.
- Ба он классҳо (class), интерфейсҳо (interface), делегатҳо (delegate) ва массивҳо (array) дохил мешаванд.
- Мумкин аст, ки меросгирӣ кунад.
- Коллектори партовҳо ёрдам мекунад, ки ёдгории объектҳои истинодӣ, ки дигар истинодҳои фаъол ба онҳо нест, озод кунад.
// Намунаи типи арзишӣ (struct)
struct Point
{
public int X;
public int Y;
}
// Намунаи типи истинодӣ (class)
class Circle
{
public int Radius;
}
| Хусусият | Типҳои арзишӣ | Типҳои истинодӣ |
|---|---|---|
| Макон нигоҳдорӣ | Стек ё дар дохили намунаи типи арзишӣ | Ҳалд |
| Трансфер/таъин | Нусхаи арзиш | Нусхаи истинод |
| Меросгирӣ | Не | Бале |
| Идоракунии хотира | Автоматӣ (стек) | Коллектори партовҳо |