インスタンスメソッドでも静的メソッドでも結果は同じですが、想定される状況により使い分けることが出来ます。 例えば、静的メソッドのCompareとEqualsを使うと、仮に文字列変数にnull
/Nothing
が代入されていてもヌル参照を引き起こさずに済みます。 (null
との比較や、null
同士の比較を行っても例外エラーにはなりません)
Stringクラスのインスタンスメソッド・静的メソッドの比較
Imports System
Class Sample
Shared Sub Main()
Dim s1 As String = Nothing
Dim s2 As String = "foo"
Console.WriteLine(String.Compare(s1, s2)) ' s1がNothingでもエラーにはならない
Console.WriteLine(s1.CompareTo(s2)) ' s1がNothingであるためNullReferenceExceptionがスローされる
End Sub
End Class