将枚举标志传递给 class 或过程

Passing enum flags to a class or procedure

我想将多个枚举(按位)项传递给过程。不是单独而是一起类似于 Messagebox 命令。例如:

MsgBoxStyle.Exclamation + MsgBoxStyle.OkCancel

有很多关于 Flagg 选项等的信息,但没有关于如何作为单个组合变量传递的信息

在 vs2019 中我设置了枚举

<Flags>
Public Enum Options 
    n = 0
    Check = 1
    Print = 2
    Mail = 4    
End 

我的职能是

Public Function MyMsg(Text As String, MsgOption As Options) As boolean

一切顺利,当我尝试编写调用时

 MyMsg("Lorem  luctus non", Options.Print + Options.Mail)

我明白了 重载解析失败,因为在没有缩小转换的情况下无法调用可访问的 'MyMsg': 'Public Function MyMsg(Text As String, MsgOption As Options) As Boolean':参数匹配参数 'MsgOption' 从 'Integer' 缩小到 'Options'

我不想用整数创建函数,否则我会失去显示枚举选项的智能感知,再次类似于 MessageBox。

我能看到问题(从 'Integer' 缩小到 'Options')但看不到如何传递值。

你们谁能guys/gels帮忙吗?

使用这两种方法中的任何一种:都适用于 vs 2019。

MyMsg("Lorem luctus non", Options.Print Or Options.Mail)

MyMsg("Lorem luctus non", CType(Options.Mail + Options.Print + Options.Check, Options))