字符串函数可以在Select-Case语句中执行吗?

时间:2013-07-09 07:01:11

标签: .net vb.net select-case

VB.NET中,我如何实现以下逻辑?

Select Case testString
    Case Contains("ABC") : Debug.Print "ABC"
    Case Contains("XYZ") : Debug.Print "XYZ"
    Case Else : Debug.Print "Other"
End Select

2 个答案:

答案 0 :(得分:4)

简单地:

If testString.Contains("ABC") Then
    Debug.Print "ABC"
ElseIf testString.Contains("XYZ") Then
    Debug.Print "XYZ"
Else
    Debug.Print "Other"
End If

你无法在Select Case语句中检查这种函数结果,因此使用简单的If语句是最好和更容易的选择。

您可以随时执行此操作:

Select Case True
    Case testString.Contains("ABC") : Debug.Print("ABC")
    Case testString.Contains("XYZ") : Debug.Print("XYZ")
    Case Else : Debug.Print("Other")
End Select

但它只适用于非常具体的情况,而且根本不是很清楚和必要。

答案 1 :(得分:3)

在VB.NET中,您可以使用此Select

Select Case True
    Case testString.Contains("ABC")
        Debug.Print("ABC")
    Case testString.Contains("XYZ")
        Debug.Print("XYZ")
    Case Else : Debug.Print("Other")
End Select

但是,在这种情况下,我更喜欢简单的If子句。

If testString.Contains("ABC") Then
    Debug.Print("ABC")
ElseIf testString.Contains("XYZ") Then
    debug.Print("XYZ")
Else
    Debug.Print("Other")
End If

这将更清晰,也与C#兼容。 switch只允许使用常量表达式。