【问题标题】:VB.net Strange Conditional Statement (IF)VB.net 奇怪的条件语句 (IF)
【发布时间】:2013-04-11 10:13:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: vb.net if-statement


    【解决方案1】:

    这是一个内联 If 语句 If(condition,iftrue,iffalse) 如果condition 为真,则评估并返回iftrue 否则iffalse

    【讨论】:

    • 噢! facepalm 谢谢伙计,这帮我省了一大堆麻烦!
    【解决方案2】:

    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.
    

    【讨论】:

      【解决方案3】:

      该语句正在检查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
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多