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

詳細については、「コード分析の警告を抑制する方法」を参照してください。

関連項目