Переменные ссылочного типа в C# содержат не сам объект, а лишь ссылку на него. 1 Память для хранения таких переменных выделяется в куче, а удаляются они оттуда сборщиком мусора. 4
Некоторые особенности использования переменных ссылочного типа:
- Создание экземпляров. 4 Для этого используется оператор new, который возвращает адрес в памяти, где будет размещён объект. 4
- Инициализация. 4 После создания переменную нужно проинициализировать. 4 Это можно сделать с помощью оператора new или присвоить ей значение другой переменной. 4
- Присваивание значений. 14 Для переменных ссылочного типа присваивание происходит по ссылке на объект, то есть копия объекта не создаётся. 14
- Передача параметров. 3 При передаче параметра ссылочного типа по значению можно изменить данные, на которые указывает ссылка, например значение члена класса. 3 Однако нельзя изменить значение самой ссылки. 3 Для этого можно использовать ключевые слова ref или out. 3
Большая часть всех типов в C# — это ссылочные типы. 4 Это относится как к стандартной библиотеке (BCL), так и к пользовательским типам. 4