不要な値の代入を削除する (IDE0059)

プロパティ
ルール ID IDE0059
Title 不要な値の代入を削除する
カテゴリ スタイル
Subcategory 不要なコード規則 (式レベルの基本設定)
該当言語 C# および Visual Basic
[オプション] csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference

概要

この規則は、不要な値の代入にフラグを設定します。 次に例を示します。

// IDE0059: value written to 'v' is never
// read, so assignment to 'v' is unnecessary.
int v = Compute();
v = Compute2();

この違反を修正するために、次のいずれかの操作を実行できます。

  • 代入の右側にある式に副作用がない場合は、式または代入ステートメント全体を削除します。 これにより、不要な計算が回避され、パフォーマンスが向上します。

    int v = Compute2();
    
  • 代入の右側にある式に副作用がある場合は、代入の左側を破棄 (C# のみ) または使用されていないローカル変数に置き換えます。 破棄により、未使用の値を破棄する意図を明示的に示すことで、コードのわかりやすさが向上します。

    _ = Compute();
    int v = Compute2();
    

[オプション]

このオプションでは、破棄または未使用のローカル変数のどちらを使用するかを指定します。

オプションの構成の詳細については、「オプションの書式」を参照してください。

csharp_style_unused_value_assignment_preference

プロパティ 説明
オプション名 csharp_style_unused_value_assignment_preference
該当言語 C#
オプションの値 discard_variable 使用されていない値を割り当てるときに、破棄を使用します
unused_local_variable 使用されていない値を割り当てるときに、ローカル変数を使用します
既定のオプションの値 discard_variable
// csharp_style_unused_value_assignment_preference = discard_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    _ = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

// csharp_style_unused_value_assignment_preference = unused_local_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    var unused = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

visual_basic_style_unused_value_assignment_preference

プロパティ 説明
オプション名 visual_basic_style_unused_value_assignment_preference
該当言語 Visual Basic
オプションの値 unused_local_variable 使用されていない値を割り当てるときに、ローカル変数を使用します
既定のオプションの値 unused_local_variable
' visual_basic_style_unused_value_assignment_preference = unused_local_variable
Dim unused = Computation()

警告を抑制する

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

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

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

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

すべてのコード スタイル規則を無効にするには、構成ファイルでカテゴリ Style の重要度を none に設定します。

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

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

プロパティ
ルール ID IDE0059
Title 値は使用されない
カテゴリ スタイル
該当言語 F#
[オプション] なし

概要

この規則は、不要な値の代入にフラグを設定します。 たとえば、次のスニペットでは、answer は使用されていません。

type T() =
    let answer = 42

関連項目