我在一些vb.net源代码中看到了这个:
Dim sTest As String = "" & drTest("column")
Run Code Online (Sandbox Code Playgroud)
我被告知如果drTest("列")什么都没有,那么sTest将被分配"",所以它实际上是这样做的:
Dim sTest As String = If("",Nothing,drTest("column"))
Run Code Online (Sandbox Code Playgroud)
这是我展示的第一种方式的缺点是什么?
使用If和IIf有什么区别?
If 是三元条件运算符.
使用If和IIf有什么区别?
IIf 是一个普通的函数,大致如下实现:
Function If(Of T)(condition As Boolean, ifTrue As T, ifFalse As T)
If condition Then Return ifTrue
Return ifFalse
End Function
Run Code Online (Sandbox Code Playgroud)
这意味着无论其值如何condition,都会始终评估其他参数.If操作员不会发生这种情况.
但是你的代码实际上做的事情完全不同:
Dim sTest As String = If("",Nothing,drTest("column"))
Run Code Online (Sandbox Code Playgroud)
这没有任何意义,甚至不应该编译(或至少给出警告).你的第一个代码很好 - 它始终有效并且没有任何缺点.目前尚不清楚第二个代码甚至试图实现什么.
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |