【发布时间】:2012-04-26 13:21:33
【问题描述】:
我正在开发一个旧的 vb6 应用程序(长话短说,.NET Framework 不可用)。
我想知道,我可以将 vb6 类属性项声明为 Enum 吗?
例如
Public Enum WinInetPort
INTERNET_INVALID_PORT_NUMBER = 0
INTERNET_DEFAULT_FTP_PORT = 21
INTERNET_DEFAULT_GOPHER_PORT = 70
INTERNET_DEFAULT_HTTP_PORT = 80
INTERNET_DEFAULT_HTTPS_PORT = 443
INTERNET_DEFAULT_SOCKS_PORT = 1080
End Enum
类模块:
Private m_Port As WinInetPort
Public Property Get Port() As WinInetPort
Port = m_Port
End Property
Public Property Let Port(val As WinInetPort)
m_Port = val
End Property
但是,编译时出现错误
只有 cmets 可以出现在 End Sub、End Function 或 End Property 之后
该错误在类中的下一个 Private 语句中突出显示。
我在网上某处读到 vb6 类不能公开公共常量 - 有解决方法吗?
谢谢
【问题讨论】:
-
您得到的错误与在VB6中使用Enums有一些限制无关。你只是在某个地方打错字了。
-
你所拥有的对我来说非常好,无论是在类中声明的枚举还是模块中,问题一定出在其他地方。
-
尝试在端口后添加另一个属性,然后运行代码。如果我在类中的 Port 属性之后什么都没有,那么它将起作用,如果我在 Port 属性之后定义了一些其他属性,我会收到错误。
-
远远超出 vb6 是 naff。如果我将所有 Private 声明移到 Property 上方,我似乎不会收到错误消息。但是因为我主要使用 vb.NET 和 C#.NET 进行编码,所以我已经习惯于在属性上方声明 Private 变量。似乎 VB6 不喜欢这个。
-
是的,VB6/A 中模块/类的顶部是声明必须去的地方。