Junior
İstinad və dəyər tipləri arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Məlumatların saxlanması və ötürülməsi üsulundakı fərqlər:
-
Dəyər Növləri (Value Types):
- Birbaşa elan olunduğu yerdə (yığım və ya dəyər növü nümunəsi daxilində) saxlanılır.
- Təyin və ya dəyər ilə ötürülərkən, dəyərin nüsxəsi yaradılır.
- Primitiv növlər (int, float, bool və s.), strukturlar (struct) və enumlar (enum) daxildir.
- Bağlanmış (sealed) və irs almaq mümkün deyil.
-
İstinad Növləri (Reference Types):
- Yığımda saxlanılır. Dəyişən, dəyər deyil, yığımda ünvanına istinad edir.
- Təyin və ya dəyər ilə ötürülərkən, yalnız istinad nüsxələnir, obyekt özü deyil.
- Siniflər (class), interfeyslər (interface), delegatlar (delegate) və massivlər (array) daxildir.
- İrsi dəstəkləyə bilər.
- Çöp toplayıcı, istinad növü obyektlərinin sərbəst buraxılmasını idarə edir.
// Dəyər növü nümunəsi (struct)
struct Point
{
public int X;
public int Y;
}
// İstinad növü nümunəsi (class)
class Circle
{
public int Radius;
}
| Xüsusiyyət | Dəyər Növləri | İstinad Növləri |
|---|---|---|
| Saxlama yeri | Yığım və ya dəyər növü nümunəsi daxilində | Yığım |
| Təqdim və ya Təyin | Dəyərin nüsxəsi | İstinadın nüsxəsi |
| İrs almaq | Yox | Bəli |
| Yaddaş idarəetməsi | Avtomatik (yığım) | Çöp toplayıcı |