Sobes.tech
Back to questions
Junior — Middle
64

Можешь перечислить основные особенности типов данных в C# и их отличия?

Companies where asked
ПИК DigitalПИК Digital

Answer from AI

sobes.tech AI

В C# основные типы данных делятся на две категории: значимые (value types) и ссылочные (reference types).

  • Значимые типы хранят данные непосредственно в памяти, где объявлены. К ним относятся примитивные типы, такие как int, double, bool, а также структуры (struct). При присваивании копируется значение.

  • Ссылочные типы хранят ссылку на объект в управляемой куче. К ним относятся классы (class), массивы, строки (string), делегаты. При присваивании копируется ссылка, а не сам объект.

Отличия:

  • Значимые типы обычно быстрее и занимают меньше памяти, но имеют ограничения по функциональности.
  • Ссылочные типы позволяют создавать сложные структуры данных и поддерживают наследование.

Пример:

int a = 5;
int b = a; // копируется значение
b = 10;
// a останется 5

class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // копируется ссылка
p2.Name = "Bob";
// p1.Name теперь "Bob"