コード検査: パラメーターはプライマリコンストラクターパラメーターを非表示にする
オブジェクト初期化子を使用して using 変数を初期化すると、初期化中に例外がスローされた場合に問題が発生する可能性があります。これが可能になるのは、実行が using 句に入る前にコンパイラーがオブジェクトを作成して初期化するためです。初期化中に例外がスローされた場合、プログラムは using 句に入らず、オブジェクトは破棄されません。
以下の例では、Print() メソッドのパラメーター str は、MySample クラスのプライマリコンストラクターパラメーターと同じ名前を持っていますが、Console.WriteLine(str); が two を出力することは明らかです。
ここで、MySample と Print() が複数のパラメーターを持つ長い宣言であると想像してください。この場合、コードの読者はメソッド内の str パラメーターを見逃し、Console.WriteLine(str); がオブジェクトの作成中に受信した one を出力すると想定する可能性があります。
混乱や潜在的なエラーを避けるために、メソッドパラメーターの名前を変更します。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 文字列フォーマット方法の問題
このインスペクションは、および同様のメソッドのフォーマット引数内のフォーマット項目が正しく使用されていることを検証します。のように動作するカスタムフォーマットメソッドがある場合は、それに JetBrains.Annotations から [StringFormatMethodAttribute] のマークを付けて、対応するチェックを有効にすることができます。以下に例を示します。[StringFormatMethod(