ReSharper 2026.1 Help

可能な NullReferenceExceptions を検出する

null チェックは、.NET 開発で最も一般的な操作の 1 つです。 ReSharper は、潜在的に null になる可能性のあるエンティティを扱う開発者に特別なサポートを提供することによって、null チェックを真剣に受け入れるツールの 1 つです。

ReSharper が行う最初のことは、 NullReferenceException が発生する可能性を検出することです。 例: 最初に存在するかどうかを確認せずに XML 属性の値にアクセスしようとします。

var xe = XElement.Parse("<test/>"); var attrib = xe.Attribute("a"); var value = attrib.Value;

この方法で Value にアクセスすることはあまり安全ではないため、ReSharper は下線を引き、マウスをその場所に移動すると次のポップアップが表示されます。

ReSharper が NullReferenceException の可能性を検出しました

識別子の上にキャレットを置き、 Alt+Enter を押すと クイックフィックスが表示され、自動的に変数の null チェックを行うことができます:

ReSharper は自動的に変数の null チェックをすることを提案する

ReSharper によって行われる null チェックの大部分は、2 つの方法で機能する コードアノテーションによって実装されます。

まず、.NET FCL および NUnit の多くのシンボルに 外部アノテーション 属性でアノテーションを行っており、これらは ReSharper のインストールに含まれています。 たとえば、上記の例の Attribute メソッドには、このように CanBeNullAttribute というアノテーションが付けられています。

外部的にアノテーションを付けたメソッドの別の例を次に示します: null パラメーターを持つ Uri を作成しようとすると、次のポップアップメッセージが表示されます。

ReSharper が NullReferenceException の可能性を検出しました

もちろん、 独自のコードでこれらの属性を使用することを妨げるものはありません。 これらの属性をプロジェクトに追加するには、いくつかの方法があります。

  • 推奨される方法は、 JetBrains.Annotations アセンブリを使用して NuGet パッケージ(英語)をインストールすることです。

    実際には、パッケージを入手するために NuGet Web サイトにアクセスする必要はありません。 using JetBrains.Annotations; ディレクティブを追加し、対応する Alt+Enter アクションを使用して、パッケージを自動的にフェッチするだけです。

    ReSharper: NuGet から JetBrains.Annotations パッケージを自動的に取得するクイックフィックス
  • プロジェクト参照を追加できます。 JetBrains.Annotations.dll ReSharper インストールディレクトリで見つかります。

  • デフォルトの JetBrains.Annotations 名前空間または他の名前空間を使って、プロジェクト内のどこにでも 属性宣言を埋め込むこともできます。

これで、独自のメソッドのパラメーターをこれらの属性で飾ることができ、ReSharper がそれらの属性を取得します:

ReSharper が NullReferenceException の可能性を検出しました
2026 年 6 月 12 日