2013-04-11 99 views
1

想知道是否有人可以借我他們的專業知識。對Vb.net來說很新,並且在我們的產品中遇到了這個條件聲明。有人可以確認聲明的有效性並解釋這裏發生了什麼嗎?我嘗試過無數次搜索,但找不到任何相關的內容。VB.net奇怪的條件聲明(IF)

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

我已經改變了「ID」值名稱,因爲它是從一個商業產品的代碼,但使用的ID的都是相同的變量(整數)。

感謝您爲此提供的任何輸入!

PS:我不能在運行時檢查這種情況的原因是因爲產品如何運作。

回答

2

它是一個內聯如果聲明 If(condition,iftrue,iffalse)如果condition是真實的評價,並返回iftrue其他iffalse

+0

Doh! * facepalm *感謝隊友,爲我節省了一大筆錢! – Broseph 2013-04-11 10:29:45

1

If operator在VB.NET 2008年作爲一個ternary operator [REFERENCE]

例子:

Dim foo as String = If(bar = buz, cat, dog) 'Condition satisfied then it'll return cat else dog. 
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作爲您發佈的代碼不應編譯!