将可选枚举传递给 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】:

在处理Enums 时,您必须指定给定名称而不是[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 中的函数的主要内容,如果未能解决你的问题,请参考以下文章

将可选列表传递给 argparse

在 Visual Basic VB.Net 2010 中使用 System.DateTime 类型作为可选参数

reactjs中如何将可选元素作为prop传递给组件

如何将可选 ID 从 Route 传递给 Laravel 控制器?

将 QueueClientOptions 传递给 VB.NET 中的 Queueclient 构造函数

将数组常量传递给枚举构造函数[重复]