Rad*_*abo 0 vb.net if-statement basic
我是VB.net的新手,我对这个语句没什么问题,我想抛出msgBox只是因为在txtBox中txtTitul不是"Bc".或""或"Ing." ...而且每次都会抛出msgBox
If Not txtTitul.Text.Equals("Bc.") _
OrElse Not txtTitul.Text.Equals("") _
OrElse Not txtTitul.Text.Equals("Bc.") _
OrElse Not txtTitul.Text.Equals("Mgr.") _
OrElse Not txtTitul.Text.Equals("Ing.") _
OrElse Not txtTitul.Text.Equals("Mgr. art.") _
OrElse Not txtTitul.Text.Equals("Ing. arch.") _
OrElse Not txtTitul.Text.Equals("MUDr.") _
OrElse Not txtTitul.Text.Equals("MVDr.") _
OrElse Not txtTitul.Text.Equals("RNDr.") _
OrElse Not txtTitul.Text.Equals("PharmDr.") _
OrElse Not txtTitul.Text.Equals("PhDr.") _
OrElse Not txtTitul.Text.Equals("JUDr.") _
OrElse Not txtTitul.Text.Equals("PaedDr.") _
OrElse Not txtTitul.Text.Equals("ThDr.") Then
MsgBox("Neplatny titul!")
Exit Sub
End If
Run Code Online (Sandbox Code Playgroud)
你不想用OrElse,但是AndAlso,因为只有当它不是其中的一个它是一个无效的标题(所以不是第一次和不第二次和没有第三和等....).
但是,我可以向您展示一种更简单,更易于维护的方法吗?
Dim allowedTitles = {"Bc.","Ing.","Ing. arch.","MUDr.","MVDr.","RNDr.","PhDr.","PaedDr.","ThDr."}
If Not allowedTitles.Contains(txtTitul.Text) Then
MsgBox("Invalid title!")
End If
Run Code Online (Sandbox Code Playgroud)
如果你也想接受小写,那么忽略大小写,你可以使用:
If Not allowedTitles.Contains(txtTitul.Text, StringComparer.InvariantCultureIgnoreCase) Then
MsgBox("Invalid title!")
End If
Run Code Online (Sandbox Code Playgroud)