Чим відрізняється value type від reference type у C#?
Value type (struct, int, bool, enum) зберігає дані напряму і копіюється під час присвоєння; reference type (class, string, масиви) зберігає вказівник на дані в купі, і при присвоєнні копіюється вказівник, а не сам обʼєкт. Передавання структури в метод, який її змінює, мовчки працює з копією, якщо не передати її через ref. Структура, що зберігається в полі класу, лежить у купі разом із ним, а не на стеку.