プロが教える店舗&オフィスのセキュリティ対策術

C#で char型は値型でstring型は参照型ですがこの比較を正しく行うにはどうしたらよいでしょうか?

string s = "0123456789";
Console.WriteLine(s[0]);
Console.WriteLine("0".Equals(s[0]) ? "true" : "false");

で、falseなのは驚きでした。
Equalsを鵜呑みにしていました。
コンパイルできたので今まで気づきませんでした。

詳しい方、教えて頂けますか?

A 回答 (3件)

Console.WriteLine( '0' == s[0] ? "true" : "false");

    • good
    • 0
この回答へのお礼

さらっと答えられましたが、どうしてEqualsを使わないのでしょうか?
良く本で「Equalsを使え」とか書いているのですが、
失礼ですが、こう書いていればとりあえず安全という次善の策でしょうか?

お礼日時:2009/10/10 00:39

> どうしてEqualsを使わないのでしょうか?



== で比較できるし、その方が明確なのに
なぜ Equals を使うのですか?

> 良く本で「Equalsを使え」とか書いているのですが

それは何故か、理解していますか?
本にはその理由に何と書かれていますか?
    • good
    • 0

ヒント



質問の比較物とNo1の比較物 (主に括り方)
    • good
    • 0
この回答へのお礼

ありがとうございます。
初歩的なミスでしたね。
コンパイラに頼る初心者の誤りでした。

お礼日時:2009/10/10 01:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています