質問

なぜ最初のif文を評価する。知っていれば使用"は、""の代わりに"="ではな評価します。に交換すれば文字列になります。空には"Foo"な評価します。両方の文字列になります。空および"Foo"と同じタイプの文字列、理由は一体なんだろう?一の評価をtrueにしない?

    //this evaluates to true
    If Nothing = String.Empty Then

    End If

    //this evaluates to false
    If Nothing = "Foo" Then

    End If
役に立ちましたか?

解決

VB.netで何もタイプのデフォルト値ではありません。 言語仕様のは、セクション2.4.7に述べています:

  

何も特別なリテラルです。それはタイプがあり、タイプパラメータを含む型システム内のすべての種類、に変換されていません。特定の型に変換すると、そのタイプのデフォルト値と同等である。

あなたがString.Emptyのに対してテスト時に

そうは、何もまた、偽を返しますオペレータがNothingに対してテストするために使用すべきである長さ0、およびString.Empty.Equals(Nothing)を持っている文字列に変換されますます。

scroll top