В чём разница между value type и reference type в C#?
Value type (struct, int, bool, enum) хранит данные напрямую и копируется при присваивании; reference type (class, string, массивы) хранит указатель на кучу, и при присваивании копируется указатель, а не данные. Передача структуры в метод и её изменение внутри меняет только копию, если не передать её через ref.