【问题标题】:VB.net Select Case Statement with BeginswithVB.net 以 Beginswith 开头的 Select Case 语句
【发布时间】:2011-04-15 22:25:20
【问题描述】:

有没有办法在 VB.net 中使用 Select Case 语句作为开头?还是我必须使用很长的 elseif?示例:

If text.StartsWith("/go") then
elseif test.StartsWith("/stop")
elseif test.StartsWith("/continue")
End If

但取而代之的是:

Select Case text
Case text.StartsWith("/go")
Case text.StartsWith("/stop")
Case text.StartsWith("/continue")
Case Else
End Select
End Sub

【问题讨论】:

  • 字符串中这个命令之后是什么?例如,如果它是一个空间,您可以获取该空间的所有内容,并在选择中使用。
  • "或者我必须使用长的 elseif" 与 case 相比,elseif 的长处是什么?又多了一个性格。好的,您需要 Then 在条件末尾,但 VS 会为您添加,因此您无需额外输入。
  • Case True 答案可能有效,但对我来说似乎是代码异味。它实现了什么?
  • 我认为它更容易阅读。
  • 我倾向于同意它更容易阅读。 Select Case 向我暗示,您正在检查一件事以检查多个互斥状态。这似乎使它适合这里;您要检查的一件事是单词的开头。 (虽然如果你能get字符串的开头就不会那么有问题了,所以你可以按照凡人所期望的方式对其进行测试。)

标签: vb.net select-case


【解决方案1】:

你可以这样做

Select Case True
    Case text.StartsWith("/go")
        ...
    Case text.StartsWith("/stop")
        ...
    Case Else
End Select

【讨论】:

    【解决方案2】:
    Select Case True
     Case text.startswith("/go") :  messagebox.show("Go")
     Case text.startswith("/stop") :   messagebox.show("stop")
     Case text.startswith("/continue") :   messagebox.show("continue")
    End Select
    

    【讨论】:

    • 我选择了另一个人,因为 1. 他先回答,2. 他更容易阅读。
    • @Bubby:没问题。很高兴你得到了答案。
    猜你喜欢
    • 2011-01-27
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2013-03-23
    • 2014-12-05
    • 2015-02-27
    • 2014-03-30
    • 2012-05-07
    相关资源
    最近更新 更多