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

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

CType(expression, typename)

Части

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

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

Заметки

Совет

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

  • Функции преобразования типа, например CByte, CDbl и CInt, которые выполняют преобразование к определенному типу данных.Для получения дополнительной информации см. Функции преобразования типов (Visual Basic).

  • Оператор DirectCast (Visual Basic) или Оператор TryCast (Visual Basic).Эти операторы требуют наследования одного типа и реализации другого типа.Они могут предоставлять несколько более высокую производительность, чем CType при преобразовании значений с типом данных Object.

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

Если не определено преобразование из expression в typename (например из Integer в Date), то Visual Basic отображает сообщение об ошибке времени компиляции.

При сбое преобразования во время выполнения возникает соответствующее исключение. При сбое сужающего преобразования наиболее частым результатом является OverflowException. Если преобразование не определено, возникает InvalidCastException. Например, это может произойти, если expression имеет тип Object и его тип времени выполнения не имеет преобразования в typename.

Если тип данных expression или typename — класс или структура, можно определить CType для этих класса или структуры в качестве оператора преобразования. Это заставляет CType выполняться как перегруженный оператор. В этом случае можно управлять поведением преобразования в класс или структуру и обратно, включая то, какие исключения могут создаваться.

Перегрузка

Оператор CType также может быть перегружен для класса или структуры, определяемой вне данного кода. Если код осуществляет преобразование в или из такого класса или структуры, то необходимо понять поведение его оператора CType. Для получения дополнительной информации см. Процедуры операторов (Visual Basic).

Преобразование динамических объектов

Преобразования типов динамических объектов выполняются динамически определяемыми пользователем преобразованиями, использующего методы 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)

Дополнительные примеры см. в разделе Явные и неявные преобразования (Visual Basic).

См. также

Задачи

Практическое руководство. Определение оператора преобразования (Visual Basic)

Ссылки

Функции преобразования типов (Visual Basic)

Функции преобразования (Visual Basic)

OverflowException

InvalidCastException

Оператор Operator

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

Преобразование типов в .NET Framework