Перечень обычных и ссылочных типов
Обычные типы (Value Types) включают в себя:
- Все числовые типы (Integer и пр.)
- Boolean
- Char
- Date
- Перечисления (Enum)
- Все структуры (Structure), даже если они включают в качестве своих элементов ссылочные типы
- Все массивы, даже если они состоят из элементов обычного типа
- Классы
- Строки (String)
Ссылочные типы (Reference Types) включают в себя:
Что касается строк, то тут тонкость. Строки хоть и являются ссылочным типом, во многом ведут себя, как обычный тип. Так оператор присваивания B = A дает видимый результат, свойственный обычным типам.
Object. Нам остается упомянуть тип Object – тип-хамелеон. Вы знаете, что переменной, объявленной этим типом, вы можете в разные моменты присваивать значения любых типов: числовых, классов и т.д. Например:
Dim A As Object
A = 5
A = Button1
Так вот, Object – это ссылочный тип. Но пока переменная, объявленная этим типом, хранит в себе значение обычного типа, он ведет себя, как обычный тип, а если ссылочного – то как ссылочный. Так, на протяжении приведенного фрагмента переменная A успеет побывать и обычной, и ссылочной.
Заключение. Ссылки придают программированию дополнительную гибкость. В частности они позволяют организовывать в памяти конструкции переменного размера, такие как списки, деревья, очереди, стеки и тому подобные известные программистам вещи.