Sobes.tech
Junior

Koja je razlika između referentnih i vrednosnih tipova?

sobes.tech АИ

Одговор од АИ

Разлике у начину складиштења и преноса података:

  • Типови вредности (Value Types):

    • Се складишти директно там где су проглашени (на стеку или унутар примерка вредносног типа).
    • Приликом доделе или преноса по вредности, креира се копија вредности.
    • Укључују примитивне типове (int, float, bool итд.), структуре (struct) и енаме (enum).
    • Јесу затворени (sealed) и не могу се наследити.
  • Типови референци (Reference Types):

    • Се складиште у хипу. Променљива садржи не вредност, већ референцу на адресу у хипу.
    • Приликом доделе или преноса по вредности, копира се само референца, а не објекат.
    • Укључују класе (class), интерфејсе (interface), делегате (delegate) и низове (array).
    • Могу подржавати наследство.
    • Гаражни сакупљач управља ослобађањем меморије за објекте референцног типа, на које више нема активних референци.
// Пример вредносног типа (struct)
struct Point
{
    public int X;
    public int Y;
}

// Пример референцног типа (class)
class Circle
{
    public int Radius;
}
Карактеристика Типови вредности Типови референци
Место складиштења Стек или унутар примерка вредносног типа Хип
Пренос/Додела Копија вредности Копија референце
Наслеђивање Не Да
Управљање меморијом Аутоматски (стек) Гаражни сакупљач