我有一段代码,我很困惑:
If (_campaignIdValue <> "SALESFORCE") And (_campaignIdValue <> "SFNESMORT") And _
(_campaignIdValue <> "SFNESTERM") And (_campaignIdValue <> "SFTENNIS") +
(_campaignIdValue <> "LEADSINIT") And (_campaignIdValue <> "LEADSEXPIR") And _
(_campaignIdValue <> "LEADSRSRCH") Then
' Some code
End If
Run Code Online (Sandbox Code Playgroud)
为什么if语句中的"+"是正确的,它是什么意思?
设置Option Strict On(最好作为默认项目设置),然后你没有得到任何魔术布尔转换,但你必须修复此编译器错误.有Option Strict Off(不幸的是默认)我认为Convert.ToBoolean被称为,这意味着任何不等于零的东西都被视为True.很奇怪,不是吗?
Dim weirdBool As Boolean = 1 - 1 ' evaluates to False with Strict Off '
weirdBool = 1 + 1 ' evaluates to True with Strict Off '
Run Code Online (Sandbox Code Playgroud)
与Option Strict On你得到这个有意义的编译器错误:
Option Strict On禁止从"整数"到"布尔"的隐式转换
您还应该使用AndAlso替代And和OrElse取代Or,因为这些都是短路运营商.否则后面会抛出一个意外的异常:
Dim str As String = Nothing
If str IsNot Nothing And str.Length > 0 Then
End If
Run Code Online (Sandbox Code Playgroud)
在这里,即使str IsNot Nothing已经评估了双方False.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |