不要な式の値を削除する (IDE0058)

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

概要

この規則は、使用されていない式の値にフラグを設定します。 次に例を示します。

void M()
{
  Compute(); // IDE0058: computed value is never used.
}

int Compute();

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

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

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

    _ = Compute();
    

オプション

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

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

csharp_style_unused_value_expression_statement_preference

プロパティ 説明
オプション名 csharp_style_unused_value_expression_statement_preference
該当言語 C#
オプションの値 discard_variable 未使用の式を破棄に割り当てます
unused_local_variable 未使用の式を、使用されないローカル変数に割り当てます
既定のオプションの値 discard_variable
// Original code:
System.Convert.ToInt32("35");

// After code fix for IDE0058:

// csharp_style_unused_value_expression_statement_preference = discard_variable
_ = System.Convert.ToInt32("35");

// csharp_style_unused_value_expression_statement_preference = unused_local_variable
var unused = Convert.ToInt32("35");

visual_basic_style_unused_value_expression_statement_preference

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

警告を抑制する

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

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

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

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

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

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

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

関連項目