ソースコードのアノテーション
ReSharper のコードアノテーションの恩恵を受ける最も簡単な方法は、ソースコードのシンボルにアノテーション属性を追加し、ReSharper がソリューションをより正確かつ洞察力で分析できるようにすることです。
デフォルトでは、すべてのアノテーション属性クラスは [Conditional("JETBRAINS_ANNOTATIONS")]
属性でマークされているため、コンパイラーはコード内の属性の使用を無視します。つまり、'JetBrains.Annotations.dll' アセンブリへのバイナリ参照は生成されません。ただし、プロジェクトで「JETBRAINS_ANNOTATIONS」条件付きコンパイルシンボルを定義して、メタデータ内の属性を保持することができます。
プロジェクトでコードアノテーションのサポートを有効にする
プロジェクトでアノテーション属性を利用するには、プロジェクトで参照する必要があります。
推奨される方法は、
JetBrains.Annotations
アセンブリを使用して NuGet パッケージ(英語)をインストールすることです。実際には、パッケージを入手するために NuGet Web サイトにアクセスする必要はありません。
using JetBrains.Annotations;
ディレクティブを追加し、対応する Alt+Enter アクションを使用して、パッケージを自動的にフェッチするだけです。ReSharper インストールディレクトリにある JetBrains.Annotations.dll にプロジェクト参照を追加できます。
デフォルトの
JetBrains.Annotations
名前空間またはその他の名前空間を使用して、プロジェクト内の任意の場所に属性宣言を埋め込むこともできます。
ソリューション内のいずれかのプロジェクトで JetBrains.Annotations が参照されているか、属性宣言が埋め込まれている場合、目的のアノテーション属性を入力して Alt+Enter を押すと、現在のプロジェクトでこのモジュールを参照するクイックフィックスが呼び出され、欠落している using
ディレクティブが追加されます。
または、Control+Alt+Space を 2 回押して、ダブルインポート完了を呼び出すこともできます。これにより、属性が検出され、ネームスペースがインポートされ、参照が追加されます。
ソースコードにコードアノテーションの宣言を埋め込む
コードアノテーション宣言のコピーは、ReSharper オプション Alt+R, O の ページで入手できます。オプションで、コピー時に宣言を内部にしたり、宣言に [Conditional("JETBRAINS_ANNOTATIONS")]
属性を追加したりすることもできます。
アノテーション属性のデフォルトの実装は JetBrains.Annotations
名前空間で宣言されていますが、アノテーションが機能するためにこの名前空間は必要ありません。ソリューションのどこにでも宣言を配置できます。ReSharper はそれらを自動的に検出します。ただし、宣言が別の名前空間にある場合は、以下で説明するように、アノテーション属性を使用して名前空間を明示的に指定する必要があります。
ソリューションにアノテーション属性の複数の実装が含まれている場合もあります。たとえば、ReSharper アノテーションクラスと同じ名前のクラス(CanBeNullAttribute
、NotNullAttribute
など)がある場合や、以下を含むサードパーティのアセンブリを使用している場合があります。ReSharper アノテーションクラス。このような場合、ReSharper が適切なアノテーション属性クラスのセットを検索する名前空間を選択できます。
コードアノテーション属性のソースを変更する
メインメニューから Alt+R O を押してから、左側の を選択します。
を選択するか、JetBrains.Annotations
以外のアノテーションクラス(ReSharper はCanBeNullAttribute
宣言とNotNullAttribute
宣言のみを検索する)を持つJetBrains.Annotations
以外のすべてのネームスペース(ソースコードと参照されたアセンブリの両方)は、コードアノテーション属性を持つ名前空間リストに表示されます。目的の実装が含まれているエントリを確認します。リストに複数の名前空間がある場合は、デフォルトアノテーションネームスペースリストで ReSharper コード分析エンジンが使用する名前空間を選択します。
オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。
コンテキストアクションを使用してアノテーション属性を追加する
ReSharper がアノテーションクラスの場所を認識するとすぐに、コンテキストアクションを使用して最も人気のあるアノテーション属性を追加できます。
[NotNull]
[CanBeNull]
[UsedImplicitly]
これらのアノテーションを追加するには、アノテーションを付ける記号の Alt+Enter を押すと、ReSharper は文脈に応じて属性を提案します:
関連ページ:
アノテーションを使用してコードインスペクションを改善する
コード検査や他の多くの ReSharper の機能は、問題を検出し、改善を提案し、他の方法であなたを手助けするために、言語構成の動作を知ることに主に依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。この場合や他の多くの場合、ReSharper のは非常に役立ちます。このフレームワークで宣言された属性を使用することに...
インストールガイド
ReSharper は Visual Studio 拡張機能です。Visual Studio 2010, 2012, 2013, 2015, 2017, 2019,, 2022 をサポートします。インストール後、Visual Studio の拡張メニューに新しい ReSharper エントリが表示されます。ほとんどの ReSharper コマンドはそのメニューで使用できますが、エディター、ソリューションエクスプローラー、その他の Visual Studio ウィンドウに統合されている多くの機能もあり...
ダブル補完
ReSharper のすべての補完ショートカットは、連続して数回押すことができます。この場合、ReSharper は補完リストにさらに多くの提案を追加します。新しい提案は緑の縦線でマークされているため、簡単に見つけることができます。必要に応じて、ReSharper オプション Alt+R, O のページで新しい項目をハイライトするチェックボックスをオフにして、このヘルパーをオフにすることができます。ダブル基本補完:基本補完を 2 回呼び出すと、ReSharper は補完リストにいくつかの新しい提案...
ReSharper 設定の管理と共有
ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...
コンテキストアクション
コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小さな変更をすばやく導入できます。ReSharper は、サポートされているすべての言語で数百のコンテキストアクションを提供します。完全なリストは、ReSharper オプション Alt+R, O のページとコ...