カルチャを認識しない文字列操作Culture-insensitive string operations

カルチャを認識する文字列操作は、カルチャごとにユーザーに結果を表示するようデザインされたアプリケーションを作成する場合に役立ちます。Culture-sensitive string operations can be an advantage if you are creating applications designed to display results to users on a per-culture basis. 既定では、カルチャを認識するメソッドは、使用するカルチャを現在のスレッドの CurrentCulture プロパティから取得します。By default, culture-sensitive methods obtain the culture to use from the CurrentCulture property for the current thread.

ただし、カルチャを認識する文字列操作は、必ずしも望ましい動作ではありません。Note that culture-sensitive string operations are not always the desired behavior. 結果をカルチャに依存させない場合に、カルチャを認識する操作を使用すると、カスタムの大文字と小文字の対応規則および並べ替え規則を使用するカルチャでのアプリケーション コードの実行が失敗することがあります。Using culture-sensitive operations when results should be independent of culture can cause application code to fail on cultures with custom case mappings and sorting rules. たとえば、「.NET の文字列を使用するためのベスト プラクティス」の記事の「現在のカルチャを使用する文字列比較」を参照してください。For an example, see the "String Comparisons that Use the Current Culture" section in the Best Practices for Using Strings article.

文字列操作でカルチャに依存するかどうかは、アプリケーションで結果をどのように使用するかに基づいて決定する必要があります。Whether string operations should be culture-sensitive or culture-insensitive depends on how your application uses the results. ユーザーに結果を表示する場合は、通常、カルチャを認識する文字列操作を実行する必要があります。String operations that display results to the user should typically be culture-sensitive. たとえば、アプリケーションがローカライズされた文字列を並べ替えてリスト ボックスに表示する場合は、カルチャを認識する並べ替えを実行します。For example, if an application displays a sorted list of localized strings in a list box, the application should perform a culture-sensitive sort.

内部的に使用される文字列に対する操作は、通常、カルチャを認識しないようにします。Results of string operations that are used internally should typically be culture-insensitive. 一般的に、アプリケーションがファイル名、永続形式、エンド ユーザーに表示されないシンボル情報などの処理を実行する場合には、文字列操作の結果がカルチャごとに変わらないようにする必要があります。In general, if the application is working with file names, persistence formats, or symbolic information that is not displayed to the user, results of string operations should not vary by culture. たとえば、XML タグとして認識されるかどうかを調べるために文字列を比較するアプリケーションでは、比較操作でカルチャを認識しないでください。For example, if an application compares a string to determine whether it is a recognized XML tag, the comparison should not be culture-sensitive. また、セキュリティに関する決定が文字列の比較操作や大文字と小文字の変更操作の結果に基づいて行われる場合は、この操作がカルチャを認識しないようにして、操作の結果が CurrentCulture の値に影響されないようにする必要があります。In addition, if a security decision is based on the result of a string comparison or case change operation, the operation should be culture-insensitive to ensure that the result is not affected by the value of CurrentCulture.

開発するアプリケーションにローカリゼーションとグローバリゼーションに対応するためのコードが含まれているかどうかに関係なく、.NET Framework のメソッドは既定ではカルチャを認識する結果を取得することに注意してください。Whether or not you are developing an application that includes code to handle localization and globalization issues, you should be aware of the .NET Framework methods that retrieve culture-sensitive results by default. このトピックの目的は、アプリケーションがこれらのメソッドを使用してカルチャを認識しない結果を取得するための正しい方法を示すことです。The purpose of this topic is to illustrate the correct way for your applications to use these methods to obtain culture-insensitive results.

参照See also