Junior
154
questionbank
Что такое ссылочные типы данных в C# и какие у них особенности?
Answer from AI
sobes.tech AI
Ссылочные типы данных хранят ссылки на объекты в куче. Переменные ссылочного типа содержат адрес в памяти, где расположен сам объект.
Особенности:
- Передача по ссылке: Присвоение одной переменной ссылочного типа значения другой переменной такого же типа приводит к тому, что обе переменные указывают на один и тот же объект в памяти.
- Управление памятью: Объекты ссылочных типов размещаются в управляемой куче. Сборщик мусора автоматически освобождает память, занятую объектами, на которые больше нет ссылок.
- Значение по умолчанию: Значением по умолчанию для ссылочного типа является
null. - Наследование и полиморфизм: Ссылочные типы поддерживают наследование, что позволяет создавать иерархии классов и использовать полиморфизм.
- Сравнение: Оператор
==по умолчанию сравнивает ссылки, а не содержимое объектов.
Примеры:
- Классы (
class) - Интерфейсы (
interface) - Делегаты (
delegate) - Массивы (
array) - Строки (
string) (хотяstringявляется неизменяемым ссылочным типом)
// Пример ссылочного типа Class1
public class Class1
{
public int Value { get; set; }
}
// Создание экземпляра Class1
Class1 obj1 = new Class1 { Value = 10 };
// Присвоение ссылки
Class1 obj2 = obj1;
// Изменение значения через obj2 влияет на obj1
obj2.Value = 20;
// Теперь obj1.Value равно 20
System.Console.WriteLine(obj1.Value);