C# Tips


stringの比較


Javaをやったことがある人は、stringの中身比較は==ではなくequals()を使用しなくてはいけないと覚えていると思いますが、C#では直感的な==が使用できます。stringクラスに対して、==がオーバーライドされているからです。

注)ただしstring.Equals()メソッドのほうが、==を使用するよりもパフォーマンスが若干良いようです。

以下の例では、3つの比較をしています。
一番目の比較は、文字列の中身が同じなのでTrueを返します。
二番目の比較はaとbのオブジェクトの比較になります。aとbは同じ中身のstringオブジェクトですが、インスタンスは別なので、これはFalseになります。
三番目もオブジェクトに比較ですが、aとaは当然同じオブジェクトなのでTrueになります。

string a = "hello";
string b = new string("hello".ToCharArray());

// True
Console.WriteLine(a==b);
Console.WriteLine(a.Equlas(b));

// False
Console.WriteLine((object)a == b);

// True
Console.WriteLine((object)a == a);


目次に戻る
Copyright(c) 2008 WoodenSoldier Software