コード検査: 純粋なメソッドの戻り値は使用されません
次のコードスニペットを考えてみましょう。
コードが何かをしているように見えるかもしれませんが、実際にはそうではありません ! 理由は、文字列は不変であるため、string.Replace
は元の文字列の何も置き換えないためです(たとえば、StringBuilder
とは異なります)。純粋な関数呼び出しの結果が何にも割り当てられなかったため、したことは数 CPU サイクルの無駄です。
string.Replace
が純粋であることを JetBrains Rider がどのように知っているのかも疑問に思うかもしれません。トリックは .NET フレームワーククラスライブラリと他の頻繁に使用されるライブラリのための外部アノテーションで行われます。これらのアノテーションは JetBrains Rider インストールに含まれています。このインスペクションをトリガーする [ 純粋な ] 属性は、カスタムの純メソッドにも使用できます。あるいは、外部アノテーションのメカニズムを使用して、使用するコンパイル済みライブラリの純メソッドにアノテーションを付けることもできます。
関連ページ:
![](https://resources.jetbrains.com/help/img/rider/2024.1/code_analysis_target_framework.png)
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...
![](https://pleiades.io/icons/rider.png)
外部アノテーション
使い方:ソースが利用できない外部ライブラリを使用している場合、コードアノテーションを指定するための属性をそこで使用することは現実的ではないようです。この場合、外部アノテーションを使用すると、すでにコンパイルされたエンティティを、JetBrains Rider のコード分析エンジンによって認識される属性で補完できます。外部アノテーションを使用すると、ライブラリのコンパイル時に宣言されていなかった属性 (メソッド、パラメーター、その他の宣言) をエンジンに参照させることで、エンジンを「騙す」ことが...
![](https://resources.jetbrains.com/help/img/rider/2024.1/annotations_nuget.png)
ソースコードのアノテーション
JetBrains Rider のコードアノテーションの恩恵を受ける最も簡単な方法は、ソースコードのシンボルにアノテーション属性を追加して、JetBrains Rider があなたのソリューションをより正確かつ正確に分析できるようにすることです。デフォルトでは、すべてのアノテーション属性クラスは属性でマークされているため、コンパイラーはコード内の属性の使用を無視します。つまり、'JetBrains.Annotations.dll' アセンブリへのバイナリ参照は生成されません。ただし、プロジェクト...