VB.NET中的枚举-应为语句结尾
我的这些代码行产生了同样的错误VB.NET中的枚举-应为语句结尾,vb.net,enums,Vb.net,Enums,我的这些代码行产生了同样的错误 Enum ConnectionState INTERNET_CONNECTION_MODEM = 0x1 INTERNET_CONNECTION_LAN = 0x2 INTERNET_CONNECTION_PROXY = 0x4 INTERNET_RAS_INSTALLED = 0x10 INTERNET_CONNECTION_OFFLINE = 0x20 INTERNET_
Enum ConnectionState
INTERNET_CONNECTION_MODEM = 0x1
INTERNET_CONNECTION_LAN = 0x2
INTERNET_CONNECTION_PROXY = 0x4
INTERNET_RAS_INSTALLED = 0x10
INTERNET_CONNECTION_OFFLINE = 0x20
INTERNET_CONNECTION_CONFIGURED = 0x40
End Enum
它说:
预期报表结束
我试着用谷歌搜索,结果显示我的搜索格式是正确的。例如,下面的这些行是有效的
Public Enum InterfaceColors
MistyRose = &HE1E4FF&
SlateGray = &H908070&
DodgerBlue = &HFF901E&
DeepSkyBlue = &HFFBF00&
SpringGreen = &H7FFF00&
ForestGreen = &H228B22&
Goldenrod = &H20A5DA&
Firebrick = &H2222B2&
End Enum
这些也在起作用
Enum SecurityLevel
IllegalEntry = -1
MinimumSecurity = 0
MaximumSecurity = 1
End Enum
两个都是从一个地方拿走的
有人能告诉我我的线路出了什么问题吗
提前感谢。VB不懂
0x
符号。VB使用&H
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
有人能告诉我我的线路出了什么问题吗
您尚未正确声明十六进制文字
您已经用C#编写了它们(使用0x
前缀),但是VB.NET希望它们使用&H
前缀编写,就像示例代码所示
实际上,错误消息可能更有用,但它试图告诉您的是,它无法识别0x
序列,而是希望找到代码行的末尾
将枚举更改为如下所示:
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
类型。您可能从一些旧的VB6代码中提取了该示例枚举声明,但是考虑到VB.NET中的整型
类型的扩展范围,您的值溢出的风险很小。是否将&
附加到variablenames中以声明它们同样长的时间?或者在值后面附加一个L
,告诉编译器该值应被视为长值?裁判:@Nicholas:是的。但我所说的仍然是准确的;在您链接的文章中:“文字也可以使用标识符类型字符(%,&,@,!,#,$)”无论出于何种原因,在声明枚举常量时,尤其是来自Win32 API的常量时,&
后缀无处不在,表示文字值应解释为长。