1

我有一个功能:

ShowMessage(message As String, type As String)

只有三个有效输入type- “错误”、“警告”和“成功”。我想这样做,以便在您输入函数并访问type参数时,会出现一个带有有效输入的下拉列表。

这甚至可能吗?如果我不能用字符串做到这一点,我可以构建一个选项数组或其他东西吗?

4

2 回答 2

3

修复一些事情:

Friend Enum MessageType
  Success
  Warning 
  Critical             ' Error is reserved, use [Error] or something else
End Enum

 Sub ShowMessage(message As String, mType As MessageType)

要像你在它是一个字符串时那样使用它,比如一个 Msgbox 标题:

Dim msgType as String = mType.ToString

这转换MessageType.Critical"Critical"并且是我没有在上面使用 [Error] 的原因 - 以避免文本中的括号。

.ToString仅当变量声明为 MessageType 时才有效,如果mtype实际上是一个恰好获取 MessageType 值的整数,.ToString 将返回“2”。在这种情况下,转换整数以获得枚举名称:

Dim msgType as String = [Enum].GetName(GetType(mType))
'or
msgType = [Enum].Parse(GetType(MessageType), mType).ToString
于 2013-10-22T23:38:53.697 回答
2

当有有限的预定义选项可供选择时,您应该使用枚举

Enum MessageType
    [Error],
    Warning,
    Success
End Enum

(错误必须在方括号中,因为它是关键字)

你的电话是

 ShowMessage(message As String, type As MessageType)
于 2013-10-22T23:30:47.477 回答