【问题标题】:Can you use .Contains(string) with a Select Case Statement?您可以将 .Contains(string) 与 Select Case 语句一起使用吗?
【发布时间】:2011-02-08 12:27:20
【问题描述】:

我是否可以构建一个使用 Contains 函数的 Select 语句?像这样:

Select commentStr
    Case commentStr.Contains("10")
    Case commentStr.Contains("15")

【问题讨论】:

    标签: vb.net select-case


    【解决方案1】:
    Select Case True
        Case commentStr.Contains("10")
            'foo
        Case commentStr.Contains("15")
            'bar
    End Select
    

    请注意,使用此构造,最多将执行 一个 Case

    (另请注意,您的 C# 朋友不能使用 switch 执行此操作,这需要在 case 子句中使用常量表达式:))

    【讨论】:

    • 也许因为这个语法等价于 C# 中的一系列 if 并且能够对 switch 做同样的事情是多余的。在 C# 中,switch 语句被高度优化,因此只允许常量值。不知道在VB中是不是也一样。
    • 恕我直言,这太扭曲了Select Case。一系列If 语句将更具可读性,相同数量的代码,并且(我预测)性能一样。
    • @Matti 你可以扭曲任何语言并编写不可读的代码。在Case 语句中使用表达式可以是简短的可读的。编译器仍然可以检测编译时常量值并对其进行大量优化。
    • @MarkJ:与一堆 if 相比有什么优势?
    • @MattiVirkkunen:您可以在一行中编写案例条件和案例操作,看起来很自然。在 If/ElseIf 中写这个看起来很尴尬,或者可能只是我。
    猜你喜欢
    • 2012-06-24
    • 2013-05-15
    • 2022-01-14
    • 1970-01-01
    • 2013-07-01
    • 2022-09-15
    • 1970-01-01
    • 2015-09-21
    • 2016-01-02
    相关资源
    最近更新 更多