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