将可选枚举传递给 VB.NET 中的函数
Posted
技术标签:
【中文标题】将可选枚举传递给 VB.NET 中的函数【英文标题】:Passing an optional Enum to a function in VB.NET 【发布时间】:2015-12-13 04:13:18 【问题描述】:我正在尝试将可选枚举传递给函数,但无法正确获取语法。我正在尝试以下方法:
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
并得到错误信息
“不能在常量表达式中进行从“MyEnumName”到“System.Enum”的转换”
是否可以有可选的枚举或我做错了什么?
提前致谢
【问题讨论】:
澄清一下,您是想将实际的枚举类型传递给函数,还是枚举的值? 我认为你需要使用 '[Enum].MyEnumName' 而不是 'MyEnumName' 【参考方案1】:在处理Enum
s 时,您必须指定给定名称而不是[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
【讨论】:
完美!谢谢@varocarbas以上是关于将可选枚举传递给 VB.NET 中的函数的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Basic VB.Net 2010 中使用 System.DateTime 类型作为可选参数
如何将可选 ID 从 Route 传递给 Laravel 控制器?