コード検査: 明示的に指定されたタプルコンポーネント名を優先する
最新の C# では、タプルの各要素を宣言する際に、明示的に名前を付けることができます。例: (int First, int Second) は、タプルの要素に意味のある名前を明確に定義しています。しかし、これらの名前を使用せず、代わりに Item1、Item2 などのデフォルトで生成された名前を使用してタプルの要素にアクセスすると、コードの明瞭性が低下します。
以下の例では、タプルパラメーター t0 で First と Second という名前が明示的に宣言されています。ただし、コンストラクター内では、タプルの 2 番目の要素にアクセスするために、明示的な名前 Second ではなく Item2 が使用されています。
明示的な名前 Second の代わりにデフォルト名 Item2 を使用すると、タプルコンポーネントの意味やコンテキストを理解するのが難しくなります。
この問題を解決するには、該当する場合はタプルのコンポーネント名を明示的に指定します。これにより、コードの自己文書化が向上し、Item や -style のデフォルト名との混同の可能性が軽減されます。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 条件呼び出し内での意図しない変更の可能性
このインスペクションは、条件文 (例:) 内のメソッド呼び出しによって、意図しない副作用が発生したり、コードの明確さが低下したりする可能性があるケースを検出します。メソッドがオブジェクトの状態を変更し、その戻り値が条件文内で使用される場合、ロジックが読みにくくなる可能性があります。これにより保守性が低下し、意図しないエラーが発生する可能性が高まります。次の例を考えてみましょう。using System.Collections.Generic; using System.Diagnostics;...