【 解 説 】
Javaをやったことがある人は、stringの中身比較は”==”ではなく”equals()”を使用しなくてはいけないと覚えていると思いますが、C#では直感的な”==”が使用できます。stringクラスに対して、”==”がオーバーライドされているからです。
(※注意:ただしstring.Equals()メソッドのほうが、==を使用するよりもパフォーマンスが若干良いようです。)
以下の例では、3つの比較をしています。
一番目の比較は、文字列の中身が同じなのでTrueを返します。
二番目の比較はaとbのオブジェクトの比較になります。aとbは同じ中身のstringオブジェクトですが、インスタンスは別なので、これはFalseになります。
三番目もオブジェクトに比較ですが、aとaは当然同じオブジェクトなのでTrueになります。
【 例 文 】
1 2 3 4 5 6 7 8 9 10 11 12 |
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); |
■お薦め参考関連資料
Microsoft、Visual Studio、Visual Basic、Visual C#、Windows Vista、Windows Server、SQL Server、Visual C++、Visual Web Developerは、米国 Microsoft Corporationの米国及びその他の国における登録商標または商標です。