JetBrains Rider 2026.1 Help

コードインスペクション:クラスはインスタンス化されません(非公開アクセシビリティ)

このインスペクションは、ソリューション内でオブジェクトが作成されていない public クラスおよびレコードを報告します。 「Type is never used」の問題とは異なり、このインスペクションで報告される型には使用例があります。例えば、基本型やメソッド、型パラメーター、初期化されていない変数の宣言などに使用されます。

状況に応じていくつかの解決策があります。クラスが静的メンバーや定数フィールドのみを含む場合は、静的クラスにすることを検討してください。 クラスが基底クラスであったり、型パラメーターとして使用されている場合は、抽象クラスにすることを検討してください。 クラスが不要で既存のコードに影響しない場合は、削除することを検討してください。 ただし、クラスがインスタンス化されるべきなのにされていない場合は、必要な箇所でインスタンスを作成することを検討してください。

いずれの場合も、クラスの背後にあるインテンションは、将来コードを読む人にとっては明らかである必要があります。 選択したアクションによって、コードの読みやすさと保守性が増すはずです。

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

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

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

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

  • 推奨される方法は、暗黙的に使用されるシンボルに コードアノテーション属性を付与することです。 この目的のために、 [UsedImplicitly] 属性と [PublicAPI] 属性があります。これらは機能的には似ていますが、シンボルが実際にどのように使われているかを自分やチームメンバーが理解するのに役立ちます。

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

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

2026 年 6 月 12 日