将可选枚举传递给 VB.NET 中的函数

Passing an optional Enum to a function in VB.NET

我正在尝试将可选的枚举传递给函数,但语法不正确。我正在尝试以下操作:

Public Function MyFunction(ByVal TestCode As String, Optional ByVal Columns As [Enum] = MyEnumName.EnumVariable) As Boolean

也尝试过:

Public Function MyFunction(ByVal TestCode As String, Optional ByVal Columns As [Enum] = MyEnumName) As Boolean

并得到错误信息

"Conversion from "MyEnumName" 到 "System.Enum" 不能出现在常量表达式中

是否可以有可选的枚举或者我做错了什么?

提前致谢

在处理 Enum 时,您必须将给定名称指定为类型,而不是 [Enum]。示例代码:

Public Enum MyEnumName
    val1
    val2
End Enum

Public Function MyFunction(ByVal TestCode As String, Optional ByVal Columns As MyEnumName = MyEnumName.val1) As Boolean

End Function