CA1830:StringBuilder の厳密に型指定された Append および Insert メソッドのオーバーロードをお勧めします

プロパティ
ルール ID CA1830
Title StringBuilder の厳密に型指定された Append および Insert メソッドのオーバーロードをお勧めします
[カテゴリ] パフォーマンス
修正が中断ありか中断なしか なし
.NET 8 では既定で有効 提案として

原因

StringBuilderAppend または Insert メソッドが、Append または Insert メソッドに専用のオーバーロードがある型に対して ToString を呼び出した結果である引数を使用して呼び出されました。

規則の説明

AppendInsert では、String 以外の複数の型に対してオーバーロードを提供します。 可能であれば、ToString() と文字列ベースのオーバーロードを使用するよりも、厳密に型指定されたオーバーロードを優先して使用することをお勧めします。

違反の修正方法

不要な ToString() を呼び出しから削除します。

using System.Text;

class C
{
    int _value;

    // Violation
    public void Log(StringBuilder destination)
    {
        destination.Append("Value: ").Append(_value.ToString()).AppendLine();
    }

    // Fixed
    public void Log(StringBuilder destination)
    {
        destination.Append("Value: ").Append(_value).AppendLine();
    }
}

どのようなときに警告を抑制するか

不要な文字列割り当てによるパフォーマンスへの影響が懸念されない場合は、この規則の違反を抑制できます。

警告を抑制する

単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。

#pragma warning disable CA1830
// The code that's violating the rule is on this line.
#pragma warning restore CA1830

ファイル、フォルダー、またはプロジェクトの規則を無効にするには、構成ファイルでその重要度を none に設定します。

[*.{cs,vb}]
dotnet_diagnostic.CA1830.severity = none

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

関連項目