【问题标题】:Can a Visual Basic 6 Class Property Type be an EnumVisual Basic 6 类属性类型可以是枚举吗
【发布时间】: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 中模块/类的顶部是声明必须去的地方。

标签: class vb6


【解决方案1】:

确保所有 Private 语句都放在属性声明之上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2019-01-05
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多