元ネタ(我ながらクドい)
【VB Love】比較と代入……、イジめんなエラい人^^;
えムナウ師匠に、VBerはEqaulsが多いとの指摘がありました。それは、こういうクソCodeが蔓延してたからだと^^;
さすがに予めNothingをわざと入れてる状況は少ないのですが、VBerなら犯る(というかよく見るw)
【クソコードの例】
Dim szTest As String = Nothing
Console.WriteLine(szTest = "")
Console.WriteLine(szTest = Nothing)
【結果】
True
True
ということで、Stringの比較はString.Compareを押したい今日このごろ
【すこしはマシかな^^;】
Dim szTest As String = Nothing
Console.WriteLine(String.Compare(szTest, ""))
Console.WriteLine(String.Compare(szTest, Nothing))
【結果】
-1
0
【クソコードここに極まれり】微妙に笑えない現実にハイレベルな愛を感じる。もう犯ってみるしかない、という廃な...
Try
Dim szTest As String = Nothing
Console.WriteLine(szTest.Equals(""))
Console.WriteLine(szTest.Equals(Nothing))
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
【結果】
orn
オブジェクト参照がオブジェクト インスタンスに設定されていません。
Nothingと比較する文化、さすがに減ってきましたけれどね^^;