0

最近、.NET コードで文字列比較を行っているときに、null 参照から保護していることに気付きました。このチェックは VB.NET では不要のように思われます。これは、等価演算子をオーバーロードし、この null 参照チェックを実行するためです。皆さんは同意しますか?

以下の例を参照してください。

        Dim myStringVariable As String

        ' Unnecessary in VB.NET
        If myStringVariable Is Nothing OrElse myStringVariable = "" Then
        End If

        ' Unnecessary in VB.NET
        If String.IsNullOrEmpty(myStringVariable) Then
        End If

        ' This will work
        If myStringVariable = "" Then
        End If

        ' Also acceptable if you don't like using hard coded constants
        If myStringVariable = String.Empty Then
        End If
4

3 に答える 3

3

特に平等テストの場合、あなたは正しいかもしれません。ただし、文字列に対して行うことは等価テストだけではありません。

私はVB.Netをあまりやったことがありませんが、それを強く疑っています

myStringVariable.Length

myStringVariable が null の場合は爆発します。ええと...何もありません。

于 2012-08-09T02:10:41.440 に答える
3

自分がしていることを明確にする必要は決してありません。あなたのコードに取り組んでいる誰かが読んだString.IsNullOrEmpty場合、彼らはあなたがnullと空を同じように扱うことを意味していたことを知っています.

あなたのコードに取り組んでいる人が を読んだmyStringVariable = String.Empty場合、null と空を同じように処理するつもりだったのか、それとも見落としたのか疑問に思う必要があります。

于 2012-08-09T02:11:02.523 に答える
0

そうです、これらすべてのチェックを組み合わせることは非常に冗長です。

簡単に単純化してみませんか:

If String.IsNullOrEmpty(myStringVariable) Then
    ' do whatever
End If
于 2012-08-09T02:10:24.570 に答える