- ベストアンサー
C#で char型とstring型の比較で Equalsでハマりました。
C#で char型は値型でstring型は参照型ですがこの比較を正しく行うにはどうしたらよいでしょうか? string s = "0123456789"; Console.WriteLine(s[0]); Console.WriteLine("0".Equals(s[0]) ? "true" : "false"); で、falseなのは驚きでした。 Equalsを鵜呑みにしていました。 コンパイルできたので今まで気づきませんでした。 詳しい方、教えて頂けますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Console.WriteLine( '0' == s[0] ? "true" : "false");
その他の回答 (2)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.3
> どうしてEqualsを使わないのでしょうか? == で比較できるし、その方が明確なのに なぜ Equals を使うのですか? > 良く本で「Equalsを使え」とか書いているのですが それは何故か、理解していますか? 本にはその理由に何と書かれていますか?
- SAYKA
- ベストアンサー率34% (944/2776)
回答No.2
ヒント 質問の比較物とNo1の比較物 (主に括り方)
質問者
お礼
ありがとうございます。 初歩的なミスでしたね。 コンパイラに頼る初心者の誤りでした。
お礼
さらっと答えられましたが、どうしてEqualsを使わないのでしょうか? 良く本で「Equalsを使え」とか書いているのですが、 失礼ですが、こう書いていればとりあえず安全という次善の策でしょうか?