为什么我不能在公共Const中使用枚举值“需要常量表达式”

时间:2014-06-18 13:26:05

标签: vb.net enums const

我试图在VB代码中引用另一个类的Enum。我将Enum附加到Constant中的字符串末尾。然后我拿下Enum的.ToString。

当我研究错误时,#34;需要常量表达式"我是MSDN页面的主角 http://msdn.microsoft.com/en-us/library/6707e415(v=vs.90).aspx

在页面中指出:"如果声明是Const语句,请检查以确保常量是...枚举成员..."

我在这里做错了什么?

Public Const c_sqlRStaffWithThePositionID As String = "SELECT GRA.* " + 
"FROM GRA_RS_AFF GRA " + "INNER JOIN GRA_DBUSER U ON U.id = GRA.ID " + 
"WHERE POSITION = @Position AND U.UserType <> " +     
Core.Access.UserType.AccessOnly.ToString 

1 个答案:

答案 0 :(得分:0)

您无法将Enum的值分配给Const。

这不起作用:

Public Enum FooBar
    Foo
    Bar
End Enum

Private Const Val As String = FooBar.Foo.ToString()

只需将Const变为变量。这有效:

Public Enum FooBar
    Foo
    Bar
End Enum

Private _val As String = FooBar.Foo.ToString '_val = "Foo"