Может кто-нибудь посоветовать мне, что не так с моими строками?
Вы не правильно объявили шестнадцатеричные литералы.
Вы написали их так же, как в C # (с префиксом 0x
), но VB.NET ожидает, что они будут написаны с префиксом &H
, как показано в примере кода.
Действительно, сообщение об ошибке, возможно, может быть более полезным, но он пытается сказать вам, что он не распознает последовательность 0x
и вместо этого ожидает найти конец строки кода.
Измените свой enum, чтобы он выглядел так:
Enum ConnectionState
INTERNET_CONNECTION_MODEM = &H1
INTERNET_CONNECTION_LAN = &H2
INTERNET_CONNECTION_PROXY = &H4
INTERNET_RAS_INSTALLED = &H10
INTERNET_CONNECTION_OFFLINE = &H20
INTERNET_CONNECTION_CONFIGURED = &H40
End Enum
Пример кода, показанный в вопросе, также суффикс каждого из литералов с символом &
. Это пережиток тех дней Бейсика, которые прошли ; он сообщает компилятору, что литерал представляет тип Long
. Вы, вероятно, извлекли это примерное перечисление из некоторого старого кода VB 6, но существует небольшой риск переполнения ваших значений, учитывая расширенный диапазон типа Integer
в VB.NET.