我有一个像这样的枚举(在 C# 中)
public enum Cars
{
Toyota = 'T'
Honda = 'H'
Ford= 'F'
}
还有 VB 中 myCar 的变量
Dim myCarValue As String = "H"
如何检查 myCarValue 是否是 Cars 枚举中的有效值之一,而不需要与电子邮件中的每个值进行比较?有没有办法使用 Contains() 来做到这一点?
您只能使用枚举中的数字类型。这段代码根本无法编译。你会得到编译器错误:
常量表达式中不能发生从“字符串”到“整数”的转换
您必须选择不同的方法。我建议使用常量和
HashSet(Of String)
来存储它们:
Public Module Cars
Public Const Toyota = "T", Honda = "H", Ford = "F"
Private ReadOnly _values As HashSet(Of String) = New HashSet(Of String) From {
Toyota,
Honda,
Ford
}
Public Function IsValidCar(carCode As String) As Boolean
Return _values.Contains(carCode)
End Function
End Module
现在您可以进行如下检查:
If Cars.IsValidCar("H") Then
End If