ソースコードのアノテーション
ReSharper のコードアノテーションを活用する最も簡単な方法は、ソースコードのシンボルにアノテーション属性を追加して、ReSharper にソリューションをより正確かつインサイトで分析してもらうことです。
プロジェクトでコードアノテーションのサポートを有効にする
プロジェクトでアノテーション属性を利用するには、プロジェクトで参照する必要があります。
推奨される方法は、
JetBrains.Annotationsアセンブリを使用して NuGet パッケージ(英語)をインストールすることです。実際には、パッケージを入手するために NuGet Web サイトにアクセスする必要はありません。
using JetBrains.Annotations;ディレクティブを追加し、対応する Alt+Enter アクションを使用して、パッケージを自動的にフェッチするだけです。
プロジェクト参照を追加できます。 JetBrains.Annotations.dll は ReSharper インストールディレクトリで見つかります。
デフォルトの
JetBrains.Annotations名前空間または他の名前空間を使って、プロジェクト内のどこにでも 属性宣言を埋め込むこともできます。
ソリューション内のいずれかのプロジェクトで JetBrains.Annotations が参照されているか、属性宣言が埋め込まれている場合、目的のアノテーション属性を入力して Alt+Enter を押すと、現在のプロジェクトでこのモジュールを参照する クイックフィックスが呼び出され、欠落している using ディレクティブが追加されます。

また、 Control+Alt+Space を 2 回押すことで double インポート補完 を呼び出し、属性の検索、名前空間のインポート、参照の追加が行えます。

ソースコードにコードアノテーションの宣言を埋め込む
コードアノテーション宣言のコピーは、ReSharper オプション ページで入手できます Alt+R、O 。 オプションとして、コピー時に宣言を内部的に作成することもできます。
アノテーション属性のデフォルト実装は JetBrains.Annotations 名前空間で宣言されていますが、アノテーションの動作にこの名前空間は必須ではありません。 宣言はソリューション内のどこに置いてもかまいません。ReSharper が自動的に検出します。 ただし、宣言が異なる名前空間にある場合は、下記のようにアノテーション属性でその名前空間を明示的に指定する必要があります。
また、ソリューションに複数のアノテーション属性の実装が含まれる場合があります。例えば、ReSharper のアノテーションクラス(CanBeNullAttribute、 NotNullAttribute など)と同じ名前のクラスが存在したり、ReSharper アノテーションクラスを含むサードパーティ製アセンブリを使用している場合などです。 そのような場合は、ReSharper が適切なアノテーション属性クラスを探す名前空間を選択できます。
コードアノテーション属性のソースを変更する
メインメニューから を選択するか、 Alt+R O を押してから、左側の を選択します。
JetBrains.Annotations以外のアノテーションクラス(ReSharper はCanBeNullAttributeとNotNullAttribute宣言のみを検索する)を持つすべての名前空間(ソースコードと参照アセンブリの両方)は、 コードアノテーション属性を持つ名前空間 リストに表示されます。 目的の実装が含まれているエントリを確認します。リストに複数の名前空間がある場合は、 デフォルトアノテーションネームスペース リストで ReSharper コード解析エンジンが使用する名前空間を選択してください。
オプション ダイアログで 保存 をクリックして変更内容を適用し、ReSharper に保存場所を任せるか、 保存先 セレクターから特定のレイヤーを選択して変更を保存します。 詳細については、 resharper 設定の管理と共有 をご参照ください。
コンテキストアクションを使用してアノテーション属性を追加する
ReSharper がアノテーションクラスの場所を認識するとすぐに、 コンテキストアクションを使って、最も人気のあるアノテーション属性を追加できます:
[NotNull][CanBeNull][UsedImplicitly]
これらのアノテーションを追加するには、アノテーションを付けたいシンボルで Alt+Enter を押すと、ReSharper が文脈に応じて属性を提案します:
