在VB.NET
,我怎么能实现如下逻辑是什么?可以在Select-Case语句中执行字符串函数吗?
Select Case testString
Case Contains("ABC") : Debug.Print "ABC"
Case Contains("XYZ") : Debug.Print "XYZ"
Case Else : Debug.Print "Other"
End Select
在VB.NET
,我怎么能实现如下逻辑是什么?可以在Select-Case语句中执行字符串函数吗?
Select Case testString
Case Contains("ABC") : Debug.Print "ABC"
Case Contains("XYZ") : Debug.Print "XYZ"
Case Else : Debug.Print "Other"
End Select
简单:
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
但它会在非常具体的情况下,只有工作,还不是很清楚和必要的。
在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
只允许常量表达式。
因为这部作品在这个具体的例子,它不会对功能的有效方法,它返回不仅仅是一个布尔类型总是不同的值。 – SysDragon
@SysDragon:当然,你不能用'选择... Case'的一切。但在更多的情况下比在C#中。 OP希望将它与一个返回'Boolean'的函数一起使用。 –
@ CJ7请考虑[标记任何答案是正确的(http://meta.stackexchange.com/a/5235/208536)和upvoting如果这是对你有用。 – SysDragon