Функция CType (Visual Basic)
Возвращает результат явного преобразования выражения в указанный тип данных, объект, структуру, класс или интерфейс.
Синтаксис
CType(expression, typename)
Детали
expression
Любое допустимое выражение. Если значение выходит за пределы допустимого expression
диапазона typename
, Visual Basic создает исключение.
typename
Любое выражение, которое является законным в As
предложении в Dim
инструкции, то есть имя любого типа данных, объекта, структуры, класса или интерфейса.
Замечания
Совет
Для преобразования типов можно также использовать следующие функции:
- Функции преобразования типов, такие как
CByte
,CDbl
иCInt
которые выполняют преобразование в конкретный тип данных. Дополнительные сведения см. в разделе Функции преобразования типов. - Оператор DirectCast или оператор TryCast. Эти операторы требуют, чтобы один тип наследовался от другого типа или реализует другой тип. Они могут обеспечить несколько лучшую производительность, чем
CType
при преобразовании в тип данных и из нееObject
.
CType
компилируется встроенным образом, что означает, что код преобразования является частью кода, который вычисляет выражение. В некоторых случаях код выполняется быстрее, так как для преобразования не вызываются процедуры.
Если преобразование не определено в (например, из expression
typename
Integer
Date
), Visual Basic отображает сообщение об ошибке во время компиляции.
Если преобразование завершается ошибкой во время выполнения, возникает соответствующее исключение. Если сужающее преобразование завершается ошибкой, OverflowException это наиболее распространенный результат. Если преобразование не определено, InvalidCastException создается исключение. Например, это может произойти, если expression
тип имеет тип Object
, а его тип времени выполнения не имеет преобразования typename
в .
Если тип expression
данных или typename
является классом или структурой, которую вы определили, можно определить CType
в этом классе или структуре как оператор преобразования. Это делает CType
действие в качестве перегруженного оператора. При этом можно управлять поведением преобразований в класс или структуру, включая исключения, которые можно вызвать.
Ключевые слова преобразований
Сравнение ключевое слово преобразования типов выглядит следующим образом.
Ключевое слово | Типы данных | Связь аргументов | Сбой во время выполнения |
---|---|---|---|
CType |
Любые типы данных | Преобразование расширения или сужения должно быть определено между двумя типами данных | Бросает InvalidCastException |
Оператор DirectCast | Любые типы данных | Один тип должен наследоваться от другого типа или реализовать другой тип | Бросает InvalidCastException |
TryCast | Только ссылочные типы | Один тип должен наследоваться от другого типа или реализовать другой тип | Возвращает ничего |
Перегрузка
Оператор CType
также может быть перегружен в классе или структуре, определенной за пределами кода. Если код преобразуется в такой класс или структуру, убедитесь, что вы понимаете поведение своего CType
оператора. Для получения дополнительной информации см. Operator Procedures.
Преобразование динамических объектов
Преобразования типов динамических объектов выполняются определяемыми пользователем динамическими преобразованиями, которые используют TryConvert методы или BindConvert методы. Если вы работаете с динамическими объектами, используйте CTypeDynamic метод для преобразования динамического объекта.
Пример
В следующем примере функция используется CType
для преобразования выражения в Single
тип данных.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Дополнительные примеры см. в разделе "Неявные и явные преобразования".