Поделиться через


Типы данных являются типами .NET Framework

Обновлен: Ноябрь 2007

Каждый простой тип данных в Visual Basic поддерживается структурой или классом в пространстве имен System. Компилятор использует каждое ключевое слово типа данных как псевдоним для базовой структуры или класса. Например, объявление переменной посредством ключевого слова Byte равносильно объявлению ее полным именем структуры System.Byte.

Дополнительные классы и структуры доступны в .NET Framework

Общеязыковая среда выполнения (CLR) также поддерживает структуры и классы, не предусмотренные в Visual Basic. Например, структура System.Guid предоставляет глобально уникальный идентификатор (GUID), а класс System.TimeZone поддерживает часовой пояс. Эти типы можно использовать для объявления переменных и констант, и можно обращаться к методам, которые .NET Framework реализует для этих типов. Однако Visual Basic не поддерживает операции или тип преобразования, включающие типы, которые он не предоставляет.

Типы значений и ссылочные типы

В .NET Framework структура является типом значения, а класс является ссылочным типом. По этой причине типы значений, например Char и Integer реализуются посредством структур .NET Framework, тогда как ссылочные типы, например Object и String, поддерживаются классами .NET Framework. Обратите внимание, что каждый массив является ссылочным типом, даже если его члены являются типами значений, и что каждая структура является типом значения, даже если она имеет члены ссылочного типа.

Поскольку каждый ссылочный тип представляет собой соответствующий класс .NET Framework, для его инициализации необходимо использовать ключевое слово New (Visual Basic). Следующий оператор инициализирует массив:

Dim totals() As Single = New Single(8) {}

Ключевое слово New также может быть использовано для инициализации типа значений. Это особенно полезно, если тип имеет конструктор, принимающий параметры. Примером этого является конструктор Decimal(Int32, Int32, Int32, Boolean, Byte), который строит новое значение Decimal от предоставленных частей.

Типы данных имеют элементы

Так как они поддерживаются структурами и классами .NET Framework, типы данных Visual Basic имеют члены. Эти члены включают в себя конструкторы, методы, свойства и поля. Пользователь может получить доступ к членам переменной (за исключением конструкторов) тем же способом, что и к методам и свойствам объекта.

В следующем примере используется Year, Month, и свойства Day, а также метод DaysInMonth структуры System.DateTime, чтобы определить, сколько дней осталось в текущем месяце.

Dim current As Date = Now
Dim daysRemaining As Integer
daysRemaining = Date.DaysInMonth(current.Year, current.Month) - current.Day

Обратите внимание, что необходимо предварять ссылку на член типа данных либо именем типа (Date), либо именем переменной, объявленной этим типом (current).

Примеры членов типа данных

В следующих прототипах кодов показаны некоторые полезные методы, свойства и поля, используемые в типах данных:

<Char>.IsDigit() ' Returns True if character is a numeric digit.

<Char>.IsLower() ' Returns True if character is a lowercase letter.

<Date>.IsLeapYear() ' Returns True if current year is a leap year.

<Date>.ToUniversalTime() ' Returns local date/time converted to UTC.

<Double>.IsInfinity() ' Returns True if contents represent infinity.

<Double>.IsNaN() ' Returns True if contents are not a number (0/0).

<Long>.MaxValue ' Constant representing largest positive Int64 value.

<Object>.GetType() ' Returns Type object representing type of <Object>.

<Object>.GetType().GetTypeCode() ' Returns type code of <Object>.

<String>.Chars(<index>) ' Character at position <index> of <String>.

<String>.Length ' Number of characters currently in <String>.

Все числовые типы, включая Byte и Char, предоставляют открытые поля MaxValue и MinValue, которые могут применяться при работе с этими типами.

Эквивалентность членов типа данных не подтверждена.

.NET Framework также предоставляет несколько методов для типов данных, которые могут быть эквивалентны функциям и ключевым словам Visual Basic. Однако Visual Basic не всегда использует методы.NET Framework для выполнения преобразований или других операций, и результаты не всегда идентичны.

Например, метод ToSingle выполняет тот же тип операций, что и ключевое слово CSng с выражением Decimal. Однако CSng не всегда использует ключевое слово System.dataType.ToSingle, и, следовательно, не всегда гарантируется совпадение результатов при граничных условиях.

Как правило, следует использовать элементы программирования Visual Basic, поскольку их легче использовать и они упрощают чтение кода. В некоторых случаях могут потребоваться дополнительные возможности, предоставляемые методом .NET Framework. Пример содержится в разделе "Оператор Mod не возвращает точный результат" в разделе Устранение неполадок, связанных с типами данных.

См. также

Основные понятия

Типы значений и ссылочные типы

Структуры и классы

Ссылки

Boolean

Byte

Char

DateTime

Decimal

Double

Guid

TimeZone