CA1308:文字列を大文字に標準化します
プロパティ | 値 |
---|---|
ルール ID | CA1308 |
Title | 文字列を大文字に標準化します |
[カテゴリ] | グローバリゼーション |
修正が中断ありか中断なしか | なし |
.NET 8 では既定で有効 | いいえ |
原因
操作で、文字列が小文字に正規化されています。
規則の説明
文字列は大文字に正規化する必要があります。 一部の文字は、小文字に変換すると、ラウンド トリップできなくなります。 ラウンド トリップとは、文字をあるロケールから、文字データを異なる方式で表す別のロケールに変換した後、変換された文字から元の文字を正確に取得することを意味します。
違反の修正方法
文字列を小文字に変換する操作を、文字列を大文字に変換する操作に変更します。 たとえば、String.ToLower(CultureInfo.InvariantCulture)
を String.ToUpper(CultureInfo.InvariantCulture)
に変更します。
どのようなときに警告を抑制するか
正規化の結果に基づいてセキュリティの決定を行わない (たとえば、UI に結果を表示している) 場合は、警告を抑制しても問題ありません。
警告を抑制する
単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。
#pragma warning disable CA1308
// The code that's violating the rule is on this line.
#pragma warning restore CA1308
ファイル、フォルダー、またはプロジェクトの規則を無効にするには、構成ファイルでその重要度を none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.CA1308.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET