JetBrains Rider 2026.1 Help

コードインスペクション:純粋なメソッドの戻り値が使用されていません

次のコードスニペットを考えてみましょう。

name.Replace(", ", " ");

コードが何かをしているように見えるかもしれませんが、実際にはそうではありません ! 理由は、文字列は不変であるため、 string.Replace は元の文字列の何も置き換えないためです(たとえば、 StringBuilder とは異なります)。 純粋な関数呼び出しの結果が何にも割り当てられなかったため、したことは数 CPU サイクルの無駄です。

JetBrains Rider がどのように string.Replace が純粋であることを認識しているのか、不思議に思われるかもしれません。 その仕組みは、.NET Framework クラスライブラリやその他のよく使われるライブラリに対して 外部アノテーション を利用することです。 これらのアノテーションは JetBrains Rider のインストールに含まれています。 このインスペクションをトリガーする [Pure] 属性は、 ご自身のカスタム純粋メソッドにも利用できます。また、 外部アノテーション の仕組みを使って、利用しているコンパイル済みライブラリ内の純粋なメソッドに注釈を付けることも可能です。

2026 年 6 月 12 日