Compareの危険性
MSDNライブラリの「カルチャを認識しない文字列比較の実行」によると、「セキュリティ上の決定が文字列比較の結果に基づいて行われる場合は、カルチャを認識しない操作を実行して、結果が CultureInfo.CurrentCulture の値の影響を受けないようにします。」とあります。
本当にそれだけでいいんでしょうか?
using System; using System.Globalization; namespace Siokoshou { public class Test { static void Main() { if ( 0 == String.CompareOrdinal( "〇あ", "あ〇" ) ) Console.WriteLine( "Much! (CompareOrdinal)" ); if ( 0 == String.Compare( "〇あ", "あ〇", false, CultureInfo.InvariantCulture ) ) Console.WriteLine( "Much! (InvariantCulture)" ); Console.ReadLine(); } } }
あなたの望む動作はどちら?