Принципы объектно-ориентированного программирования

         

Ссылочные типы



Ссылочные типы

Ссылочные типы похожи на ссылки в C++, где они являются указателями, привязанными к типам (type-safe pointers). Это значит, что ссылка (если она не равна null) — это не просто адрес, который, как вы полагаете, может указывать (а может и не указывать) на определенный объект. Ссылка всегда гарантированно указывает объект заданного типа, уже выделенный в куче. Кроме того, ссылка может быть равна null.

Ниже выделяется значение ссылочного типа (string), но при этом «за кулисами» в куче выделяется значение и возвращается ссылка на него:

string s = "Hello,World";

Как и в случае размерных типов, в С# несколько типов определены как ссылочные: классы, массивы, делегаты (delegates) и интерфейсы. Объявляя переменную одного из этих типов, вы каждый раз выделяете в куче некоторое ассоциированное с этим типом число байт. Но вместо того, чтобы работать с ними напрямую (как в случае размерных типов), вы работаете со ссылкой на выделенный объект.



Содержание раздела