在案例结构中使用

问题描述 投票:3回答:3

我有一个案例结构,可以解码字符串值,并根据该值执行操作代码。案例结构非常简单,可以在其中解码预定义的值(例如“ / Start”,“ / Run”等)。但是,我有这种情况结构的一部分,需要解码变化的值。

因此,例如,我需要捕获“ / IP:blah”的字符串值(blah总是会改变)并基于blah执行代码。

我的代码如下所示:

Select Case Message
Case Like "/SetServerIP:*"
                        'Determine IP from Message string (*)
                        'Set new IP address of server in my.settings
End Select

不确定如何实现。任何帮助表示赞赏,谢谢。

vb.net switch-statement
3个回答
2
投票

您可以将Case语句与Is关键字和比较运算符一起使用。

Select...Case

将Is关键字与比较运算符(=,<>,或> =)一起使用以指定对testexpression的匹配值的限制。如果未提供Is关键字,则会将其自动插入到compareoperator之前。

如果Case语句有效,则可以使用Substring()来获取IP地址,例如:

Dim IPAddress As String=String.Empty
Select Case Message

    Case "/Start"
        ' Your code here
    Case Is >= "/SetServerIP:"
        IPAddress = Message.Substring(13)
        ' your code here
End Select

例如“ /SetServerIP:127.0.0.1” => IPAddress =“ 127.0.0.1”“ / SetServerIP:” => IPAddress =“”

编辑:请注意,只有在没有字符串比较greater/SetServerIP:的消息(例如/SftServerIP:/SetServerIR是正确的)时,此选项才有效。


1
投票

通常在比较中,您将使用Is


0
投票

对已经接受的答案略有改进。使用下面的代码,对我有用

© www.soinside.com 2019 - 2024. All rights reserved.