Функция CType (Visual Basic)

Возвращает результат явного преобразования выражения в указанный тип данных, объект, структуру, класс или интерфейс.

Синтаксис

CType(expression, typename)

Детали

expression Любое допустимое выражение. Если значение выходит за пределы допустимого expression диапазона typename, Visual Basic создает исключение.

typename Любое выражение, которое является законным в As предложении в Dim инструкции, то есть имя любого типа данных, объекта, структуры, класса или интерфейса.

Замечания

Совет

Для преобразования типов можно также использовать следующие функции:

  • Функции преобразования типов, такие как CByte, CDblи CInt которые выполняют преобразование в конкретный тип данных. Дополнительные сведения см. в разделе Функции преобразования типов.
  • Оператор DirectCast или оператор TryCast. Эти операторы требуют, чтобы один тип наследовался от другого типа или реализует другой тип. Они могут обеспечить несколько лучшую производительность, чем CType при преобразовании в тип данных и из нее Object .

CType компилируется встроенным образом, что означает, что код преобразования является частью кода, который вычисляет выражение. В некоторых случаях код выполняется быстрее, так как для преобразования не вызываются процедуры.

Если преобразование не определено в (например, из expressiontypenameIntegerDate), 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)

Дополнительные примеры см. в разделе "Неявные и явные преобразования".

См. также