可能な NullReferenceExceptions を検出する
null チェックは、.NET 開発で最も一般的な操作の 1 つです。 ReSharper は、潜在的に null になる可能性のあるエンティティを扱う開発者に特別なサポートを提供することによって、null チェックを真剣に受け入れるツールの 1 つです。
ReSharper が行う最初のことは、 NullReferenceException が発生する可能性を検出することです。 例: 最初に存在するかどうかを確認せずに XML 属性の値にアクセスしようとします。
この方法で Value にアクセスすることはあまり安全ではないため、ReSharper は下線を引き、マウスをその場所に移動すると次のポップアップが表示されます。

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

ReSharper によって行われる null チェックの大部分は、2 つの方法で機能する コードアノテーションによって実装されます。
まず、.NET FCL および NUnit の多くのシンボルに 外部アノテーション 属性でアノテーションを行っており、これらは ReSharper のインストールに含まれています。 たとえば、上記の例の Attribute メソッドには、このように CanBeNullAttribute というアノテーションが付けられています。
外部的にアノテーションを付けたメソッドの別の例を次に示します: null パラメーターを持つ Uri を作成しようとすると、次のポップアップメッセージが表示されます。

もちろん、 独自のコードでこれらの属性を使用することを妨げるものはありません。 これらの属性をプロジェクトに追加するには、いくつかの方法があります。
推奨される方法は、
JetBrains.Annotationsアセンブリを使用して NuGet パッケージ(英語)をインストールすることです。実際には、パッケージを入手するために NuGet Web サイトにアクセスする必要はありません。
using JetBrains.Annotations;ディレクティブを追加し、対応する Alt+Enter アクションを使用して、パッケージを自動的にフェッチするだけです。
プロジェクト参照を追加できます。 JetBrains.Annotations.dll は ReSharper インストールディレクトリで見つかります。
デフォルトの
JetBrains.Annotations名前空間または他の名前空間を使って、プロジェクト内のどこにでも 属性宣言を埋め込むこともできます。
これで、独自のメソッドのパラメーターをこれらの属性で飾ることができ、ReSharper がそれらの属性を取得します:
