1

想知道是否有人可以借给我他们的专业知识。对 Vb.net 来说非常新,并且在我们的一个产品中遇到了这个条件语句。有人可以确认声明的有效性并解释这里发生了什么吗?我尝试了无数次搜索,但找不到任何相关内容。

If (IsDBNull(dr("someID")), "0", dr("someID")) = someID.ToString() Then

我已经更改了“id”值名称,因为它是来自商业产品的代码,但使用的 ID 都是相同的变量(整数)。

感谢您对此提供的任何意见!

PS:我无法在运行时检查这个的原因是因为产品的运行方式。

4

3 回答 3

2

这是一个内联 If 语句 If(condition,iftrue,iffalse)ifcondition为 true 评估并返回iftrueelseiffalse

于 2013-04-11T10:22:36.833 回答
1

If operatorVB.NET 2008 中的. ternary operator[参考]

例子:

Dim foo as String = If(bar = buz, cat, dog) 'Condition satisfied then it'll return cat else dog.
于 2013-04-11T10:32:28.660 回答
1

该语句正在检查是否dr("SomeID")等于 value someID.ToString。需要 If 的原因是您需要检查dr("someID")Is 是否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

我还建议 TurningOption Strict On因为您发布的代码不应该编译!

于 2013-04-11T10:32:37.293 回答