コード検査: ラムダ式をメソッドグループに変換する
デリゲートに関して、メソッドグループはメソッドをデリゲート変数に割り当てる簡単な構文を提供します。この構文では、デリゲートのコンストラクターを明示的に呼び出す必要はありません。メソッドグループでは、メソッドのオーバーロードを使用できます。どのオーバーロードを呼び出すかは、デリゲートの署名によって決まります。
匿名関数(式ラムダまたは匿名メソッド)が 1 つのメソッドのみで構成されている場合、それをメソッドグループに変換して、よりコンパクトな構文を実現し、ラムダの使用によるコンパイル時のオーバーヘッドを防ぐことができます。以下の関連事項のリンクは、ラムダ式とメソッドグループの一般的な違いに関する詳細を提供します。コンパイル後、パフォーマンスの点でも違いがあるかもしれませんが、シナリオに大きく依存します — StackOverflow のこのコメント(英語)を参照してください。
ReSharper は、ラムダ式をメソッドグループ Console.WriteLine で置き換えるクイックフィックスを提案します。
次の例は、このクイックフィックスが匿名メソッドに適用されたことを示しています。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 1 回の割り当てで置き換える
特定の条件に応じて bool 変数の値を設定するには、条件チェックと代入に参加する単一のステートメントを使用します。以下、メソッドの結果は、がかかを決定します。は bool を返すため、メソッドの結果をに直接割り当てることができます。ReSharper は、ステートメントを削除し、の結果をに割り当てるのに役立ちます。private static void TestConvertIf(string s) { bool a = false; if (s.Contains(