Допустимые расширяющие преобразования для базовых типов VB .NET
Тип |
Допустимое расширение |
Byte | Byte, Short, Integer, Long, Decimal Single, Double |
Short | Short, Integer, Long, Decimal, Single, Double |
Integer | Integer, Long, DecimaL Single, Double |
Long | Long, DecimaL Single, Double |
Single | Single, Double |
Date | Date, String |
Более того, при активном режиме жесткой проверки типов вы не сможете использовать конструкции вида:
Dim foo As Boolean
foo = 3
В этом фрагменте логической переменной foo значение True присваивается в виде ненулевого числа (в VB6 это было вполне распространенным явлением). Подобные преобразования должны выполняться явно:
Dim foo As Boolean
foo =СВооl(З)
VB .NET автоматически выполняет преобразование между символьным типом и строкой, состоящей из одного символа.
При желании вы можете вернуться к доисторическим временам и отказаться от жесткой проверки типов. Для этого достаточно начать модуль со следующей команды:
Option Strict Off
Впрочем, поступать подобным образом не рекомендуется.
Если содержимое переменной одного типа может быть преобразовано к другому типу, можно воспользоваться функцией явного преобразования, как в только что приведенном примере с СВооl. Функции явного преобразования типов перечислены в табл. 3.4.