我对vb.net编码很新。我搜查了一下,但我找不到能解答的东西。
If Number.Text = "974.823" Or Number.Text = "231.65" Or Number.text = "567.32" Or Number.text = "476.45" Or Number.text = "149.39" Or Number.text = "675.19" Then
win.text = "Success"
Else
Stop
End If
我尝试了OrElse
,但它也没有用。
If Number.Text = "974.823" OrElse Number.Text = "231.65" OrElse Number.text = "567.32" OrElse Number.text = "476.45" OrElse Number.text = "149.39" OrElse Number.text = "675.19" Then
win.text = "Success"
Else
Stop
End If
答案 0 :(得分:5)
首先,您发布的代码应该有效。它不起作用的唯一原因是Number.Text
不等于你条件中的一个值(它是否有空格或其他一些字符?)
其次,如果你使用这样的数值,你应该比较数字数据类型而不是字符串。您可以使用TryParse
确保值的类型正确。
第三,使用Case
语句可以提高可读性,因为你有多个Or语句。
所以我会建议这样的事情:
Dim d As Decimal
'See if the value can be parsed into the appropriate numeric type.
'If not show an error
If Not Decimal.TryParse(Number.Text, d) Then
MsgBox("The value entered in invalid")
Return
End If
'Use a Select Case statement comparing the Decimal with other values
'The D after the number tells the compiler that this is a decimal value
Select Case d
Case 974.823D, 231.65D, 567.32D, 476.45D, 149.39D, 675.19D
win.text = "Success"
Case Else
Stop
End Select
答案 1 :(得分:0)
另一种机智怎么样?
Dim successCodes() as string = {"974.823", "231.65", "567.32", "476.45", "149.39", "675.19"}
If successCodes.Contains(Number.Text) Then
win.text = "Success"
Else
Stop
End If
如果您对OR进行了设置,请尝试将每个设置为parenthisis
If (Number.Text = "974.823") Or (Number.Text = "231.65") Or (Number.text = "567.32") Then
win.text = "Success"
Else
Stop
End If
自从我编写VB以来,已经很长时间了,因此对任何明显的语法错误表示道歉
答案 2 :(得分:0)
不确定您的问题是什么。但我会做一个List的字符串并检查它是否包含我想要的字符串。有了这个,我可以简单地使用Add方法添加我在后面使用的任何其他字符串。例如:acceptedNumber.Add("new value")
Dim acceptedNumber As New List(Of String)(New String() {"974.823", "231.65", "567.32", "476.45", "149.39", "675.19"})
If acceptedNumber.Contains(Number.Text) Then
win.text = "Success"
Else
Stop
End If
或者
Dim acceptedNumber As New List(Of String)
acceptedNumber.Add("974.823")
acceptedNumber.Add("231.65")
acceptedNumber.Add("567.32")
acceptedNumber.Add("476.45")
acceptedNumber.Add("149.39")
acceptedNumber.Add("675.19")
If acceptedNumber.Contains(Number.Text) Then
win.text = "Success"
Else
Stop
End If