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