Sobes.tech
Back to questions
Junior — Middle
76

Можешь назвать основные типы данных, использующие ссылки, и объяснить их особенности?

Companies where asked
AndersenAndersen

Answer from AI

sobes.tech AI

В C# основные типы данных, использующие ссылки — это ссылочные типы (reference types). К ним относятся:

  • Классы (class) — объекты создаются в куче, переменная хранит ссылку на объект.
  • Интерфейсы (interface) — переменная хранит ссылку на объект, реализующий интерфейс.
  • Массивы (array) — массивы тоже являются ссылочными типами.
  • Делегаты (delegate) — ссылки на методы, тоже ссылочные типы.

Особенности ссылочных типов:

  • Переменная хранит не сам объект, а ссылку на область памяти с объектом.
  • При присваивании копируется ссылка, а не объект.
  • Объекты создаются в управляемой куче, сборщик мусора освобождает память.
  • Можно иметь значение null, что означает отсутствие ссылки на объект.

Пример:

class Person {
    public string Name;
}

Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // p2 и p1 ссылаются на один объект
p2.Name = "Пётр";
Console.WriteLine(p1.Name); // Выведет "Пётр"