Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Visual Basic есть два типа типов: ссылочные типы и типы значений. Переменные ссылочных типов хранят ссылки на их данные (объекты), а переменные типов значений непосредственно содержат их данные. Две переменные ссылочного типа могут ссылаться на один и тот же объект, поэтому операции над одной переменной могут затрагивать объект, на который ссылается другая переменная. При использовании типов значений каждая переменная имеет собственную копию данных, и для операций с одной переменной нельзя влиять на другую (за исключением случаев модификатора ByRef для параметров).
Типы значений
Тип данных — это тип значения , если он содержит данные в пределах собственного выделения памяти. Типы значений включают следующие:
Все числовые типы данных
Boolean
,Char
иDate
Все структуры, даже если их элементы являются ссылочными типами
Перечисления, так как их базовый тип всегда
SByte
,Short
,Integer
,Long
,Byte
,UShort
,UInteger
илиULong
Каждая структура — это тип значения, даже если он содержит элементы ссылочного типа. По этой причине типы значений, такие как Char
и Integer
реализуются структурами .NET Framework.
Можно объявить тип значения с помощью зарезервированного ключевого слова, например Decimal
. Ключевое New
слово также можно использовать для инициализации типа значения. Это особенно полезно, если тип имеет конструктор, который принимает параметры. Примером этого является Decimal(Int32, Int32, Int32, Boolean, Byte) конструктор, который создает новое Decimal
значение из предоставленных частей.
Ссылочные типы
Ссылочный тип сохраняет ссылку на свои данные. Ссылочные типы включают следующие:
String
Все массивы, даже если их элементы являются типами значений
Типы классов, такие как Form
Делегаты
Класс является ссылочным типом. Обратите внимание, что каждый массив является ссылочным типом, даже если его члены являются типами значений.
Так как каждый ссылочный тип представляет базовый класс .NET Framework, необходимо использовать ключевое слово New Operator при инициализации. Следующая инструкция инициализирует массив.
Dim totals() As Single = New Single(8) {}
Элементы, которые не являются типами
Следующие элементы программирования не соответствуют типам, так как нельзя указать любой из них в качестве типа данных для объявленного элемента:
Пространства имен
Модули
События
Свойства и процедуры
Переменные, константы и поля
Работа с типом данных объекта
Можно назначить переменной типа данных Object
либо ссылочный тип, либо тип значения. Переменная Object
всегда содержит ссылку на данные, никогда не сами данные. Однако при назначении типа значения переменной Object
он ведет себя так, как если бы он содержит собственные данные. Дополнительные сведения см. в разделе "Тип данных объекта".
Можно узнать, действует ли Object
переменная в качестве ссылочного типа или типа значения, передав её IsReference методу в Information классе Microsoft.VisualBasic пространства имен.
Information.IsReference возвращает значение True
, если содержимое переменной Object
представляет ссылочный тип.