JetBrains Rider 2024.1 ヘルプ

コード検査: アクセスされていない位置プロパティ (非公開アクセシビリティ)

C# 9 record 構文は、Equals() / GetHashCode() / ToString() 実装、プライマリコンストラクターパラメーターに対応するプロパティ、および Deconstruct() メソッドを含む、一連のメンバーを暗黙的に定義します。

これらすべての暗黙の定義を考慮に入れて、JetBrains Rider はアクセスされないレコードの位置プロパティを報告します。

record Person( string Name, int Age, // non-accessed positional property object Tag ); class SomeClass { public void PrintName() { var (name, _, tag) = GetPerson(); Console.WriteLine(name); } public Person GetPerson() => new("Alex", 32, null); }
record Person( string Name, object Tag ); class SomeClass { public void PrintName() { var (name, tag) = GetPerson(); Console.WriteLine(name); } public Person GetPerson() => new("Alex", null); }

冗長な位置メンバーの削除を安全にするために、未使用のプロパティを削除しますクイックフィックス(Alt+Enter)は安全な削除リファクタリングを呼び出して、すべてのレコード使用パターンをサポートします。上記の例では、JetBrains Rider は、すべての C# 分解フォームでの間接的な使用を認識し、そのような分解から対応する _ を削除できます。

ソリューション全体のインスペクションを機能させるには、次の少なくとも 1 つを有効にする必要があります。

  • 簡略化されたグローバル使用状況チェック: JetBrains Rider 設定 Ctrl+Alt+Sエディター | インスペクション設定ページでソリューション全体の分析がオフの場合に、未使用の非プライベートタイプメンバーを表示するを選択します。

  • ソリューション全体の分析 : JetBrains Rider 設定 Ctrl+Alt+Sエディター | インスペクション設定ページでソリューション全体の分析を可能にするを選択します。

報告された位置メンバーがソリューション内で直接使用されていない場合でも、間接的に (たとえばリフレクションを介して) 使用される場合や、単にパブリック API として設計されている場合があります。これらのすべてのケースでは、次のいずれかの方法で、位置メンバーの使用状況チェックインスペクションを抑制する必要があります。

  • 推奨される方法は、暗黙的に使用される位置メンバーをコードアノテーション属性で装飾することです。この目的には 2 つの属性があります。[UsedImplicitly][PublicAPI] です。これらは機能的には似ていますが、あなたのチームメートがポジションメンバーが実際にどのように使用されているかを理解できます。

  • また、カスタム属性を使用してインスペクションの使用状況を抑制することもできます。これを行うには、その属性の定義に [MeansImplicitUse] 属性を付けます。

  • そして最後に、特定の使用チェックインスペクションを、抑制コメントまたは抑制属性を持つ他のコードインスペクションと同様に抑制することができます。

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...

安全な削除リファクタリング

他のシンボルやプロジェクト / アセンブリ参照を削除する場合は、このリファクタリングを使用して、削除後にソリューションがコンパイルされるようにします。削除されたアイテムへの参照がない場合、またはすべての参照が安全に折りたたまれている場合、アイテムはすぐに削除されます。そうしないと、JetBrains Rider は削除できないすべての参照を表示し、対応するコードを編集することができます。シンボルを削除した後に空のファイルが残っている場合、リファクタリングはこれらのファイルも削除できます。シンボル...

ソリューション全体の分析

JetBrains Rider のソリューション全体の分析により、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:JetBrains Rider 自身のインスペクションによって検出されたコンパイラーのエラー / 警告とエラー / 警告の両方で、ソリューション内のすべてのエラー / 警告を常に追跡できます。この機能は設計時コードインスペクションと連携して 2 つの利点をもたらします。ソリューションにエラー / 警告が含まれていないことを確認するために、す...

アノテーションを使用してコードインスペクションを改善する

コード検査などの JetBrains Rider の多くの機能は、問題を検出し、改善を提案し、他の方法でお手伝いするために、言語構成の動作を知ることに大きく依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。この場合や他の多くの場合、JetBrains Rider のは非常に役立ちます。このフレームワークで宣言された...