想知道是否有人可以借给我他们的专业知识。对于Vb.net来说很新,并且在我们的一个产品中遇到了这个条件声明。有人可以确认声明的有效性并解释这里发生了什么吗?我尝试了很多次搜索,但找不到任何相关内容。
If (IsDBNull(dr("someID")), "0", dr("someID")) = someID.ToString() Then
我已将“id”值名称更改为商业产品中的代码,但使用的ID都是相同的变量(整数)。
感谢您提供的任何输入!
乔
PS:我无法在运行时检查此问题的原因是产品的运行方式。
答案 0 :(得分:2)
这是一个内联的If语句
如果If(condition,iftrue,iffalse)
为真,则condition
评估并返回iftrue
其他iffalse
答案 1 :(得分:1)
VB.NET 2008中的If operator
充当ternary operator
。[ REFERENCE ]
示例:强>
Dim foo as String = If(bar = buz, cat, dog) 'Condition satisfied then it'll return cat else dog.
答案 2 :(得分:1)
该语句正在检查dr("SomeID")
是否等于值someID.ToString
。需要If的原因是您需要检查dr("someID")
是否Null
。如果使用的是0,则可能不应该等于someID
。
与执行以下操作相同:
If Not IsDBNull(dr("someID")) Then
If dr("someID").ToString = someID.ToString Then
End If
End If
我建议像这样的东西更合适(检查整数值而不是比较字符串)
If(IsDBNull(dr("someID")), 0, CInt(dr("someID"))) = someID Then
我还建议转动Option Strict On
,因为您发布的代码不应该编译!