К примеру:
- Код: Выделить всё
If "125"=125 Then Bepp
Данный код для программиста на C++ показался бы лишенным смысла, т.к. указатель не может равнятся 125. Однако VB совершенно спокойно компилирует этот код и успешно выполняет приведение типов. Все происходит замечательно.
Даже если четко указать типы переменных, все также происходит замечательно:
- Код: Выделить всё
Dim A as String,B as Long
A="125"
B=125
If A=B Then Beep
Как видим VB успешно преобразовал строку в число. Теперь данный код может показаться странным:
- Код: Выделить всё
Dim A,B
A="125"
B=125
If A=B Then Beep
Никто не знает, почему, но в данном случае VB, определив, что один переменная A - строка, а B - число, НЕ ВЫПОЛНЯЕТ ПРИВЕДЕНИЕ ТИПОВ, а сразу возвращает false. В итоге Вы не услышите звукового сигнала.
Вывод:
Не используйте переменные типа Variant, а если уж пришлось их использовать, то обязательно выполняйте явное преобразование типов:
- Код: Выделить всё
Dim A,B
A="125"
B=125
If Clng(A)=Clng(B) Then Beep