1

誰かが私に専門知識を貸してくれるかどうか疑問に思っていました。Vb.net を初めて使用し、当社の製品の 1 つでこの条件付きステートメントに出くわしました。誰かが声明の有効性を確認し、ここで何が起こっているのか説明してもらえますか? いろいろ検索してみましたが、関連するものは見つかりませんでした。

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

商用製品のコードなので、「id」値の名前を変更しましたが、使用される ID はすべて同じ変数 (int) でした。

これについてご意見をお寄せいただきありがとうございます。

ジョー

PS: 実行時にこれを確認できないのは、製品の動作方法のためです。

4

3 に答える 3

2

これはインライン If ステートメント If(condition,iftrue,iffalse)です if conditionis true 評価し、iftrueelseを返しますiffalse

于 2013-04-11T10:22:36.833 に答える
1

If operatorVB.NET 2008 ではternary operator.[ REFERENCE ]として機能します。

例:

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.ToStringdr("someID")If が必要な理由は、 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

Option Strict Onまた、投稿したコードはコンパイルできないため、Turning をお勧めします。

于 2013-04-11T10:32:37.293 に答える