ReSharper 2019.2ヘルプ

クイックフィックスの例

クイックフィックスは、さまざまな状況で利用できますが、リストアップするには大きすぎます。ReSharperは、サポートされているすべての言語で合計1200を超えるクイックフィックスを提供します。ここでは、状況の小さな選択を使用して使用する方法を示します:

型のミスマッチ

式の型を式コンテキストに適用可能な型に暗黙的にキャストできない場合、ReSharperはこのエラーを検出し、エディターで強調表示します。強調表示されたエラーでキャレットを配置し、Alt+Enterを押した後、ユーザーは次のリストからクイックフィックスを選択できます。

typeMismatch

提案されているクイックフィックスを適用した場合の影響を下の表に示します。

クイックフィックス

効果

キャスト 'string'

typeMismatch1

安全に「string」にキャスト

typeMismatch2

'o'のタイプを 'string'に変更

typeMismatch5

's'のタイプを 'object'に変更

typeMismatch3

ToString()を呼び出す

typeMismatch4

未定義の変数

ReSharperがコード内で未定義の変数を検出すると、エラーが強調表示されます。強調表示されたエラーでキャレットを配置し、Alt+Enter を押すと、以下のクイックフィックスのリストが表示されます。

undefinedVariable

提案されているクイックフィックスを適用した場合の影響を下の表に示します。

クイックフィックス

効果

ローカル変数 's'を作成

新しいローカル変数 s が作成され、目的のタイプを選択することができます。

含まれるメソッドでパラメータ 's'を作成する

新しいパラメータがメソッドシグネチャーに追加されます。

undefinedVariable3

その他を作成

サブメニューを開き、対応するクラスのフィールドまたはプロパティーを作成することができます。例:フィールドを作成する場合は、現在のクラスに新しいプライベートフィールド s が作成されます。次の提案は、新しいフィールドの正しいタイプを選択できます。

undefinedVariable2

すべての 's'を変更

すべてを変更を選択すると、次の提案が表示されます。

syncEdit

新しい名前は一度だけ入力してください: ReSharperは未定義変数の他のすべての発生を変更します:

undefinedVariable1

未定義メソッド呼び出し

ReSharperがコード内の未定義メソッドへの呼び出しを検出すると、エラーが強調表示されます。強調表示されたエラーでキャレットを位置付けて Alt+Enterを押すと、ReSharperは以下のクイックフィックスのリストを表示します。

Code Analysis Examples of Quick Fixes undefined method quick fixes

クイックフィックスを適用すると、コードは次の表のように変更されます。

クイックフィックス

効果

作成メソッド 'ResolveManagedReference'

このクイックフィックスでは、メソッドコールから派生したシグネチャーを使用して新しいメソッドを宣言し、トップダウンプログラミングを好む開発者に役立ちます。この例では、ReSharperは戻り値の型を正しく推測して次の宣言を作成します。

Code Analysis Examples of Quick Fixes undefined method return type

ReSharperはまた、新しいメソッドのパラメータの適用可能な型と名前を提案します:

Code Analysis Examples of Quick Fixes undefined method parameter

その他を作成

このサブメニューには、補助コードの作成を含むその他のクイックフィックスが含まれています: たとえば:

メソッドと更新階層を含むパラメータ 'ResolveManagedReference'を作成する
このクイックフィックスは、未解決のシンボルから現在のメソッドに新しいパラメータを作成し、そのメソッドが持つ可能性のある任意のベースメンバーおよび継承にこのパラメータを導入します。

または:

メソッドを含むパラメータ 'ResolveManagedReference'を作成する
このクイックフィックスは、未解決のシンボルから新しいパラメータを現在のメソッドに作成しますが、基本メソッドまたは継承元は更新しません。

すべての 'ResolveManagedReference'を変更

未定義の変数に対する対応するクイックフィックスと同様に、このクイックフィックスにより、ユーザーはシンボル someMethodのすべての出現箇所を素早く置き換えることができます。

忘れられた方法の戻り値

メソッドが値を返すが、return ステートメントを提供するのを忘れた場合、ReSharperは面倒なメソッドの終了角括弧を強調表示して、そのことについて警告します。強調表示されたエラーでキャレットを配置し、Alt+Enter を押すと、次のクイックフィックスが表示されます。

forgottenReturn

クイックフィックス

効果

return ステートメントを追加します

クイックフィックスが適用された後、ReSharperは nullを返す return ステートメントを追加します。

メソッドがvoidを返すようにする

クイックフィックスが適用された後、ReSharperはメソッドの初期戻り型を voidに置き換えます。

ディレクティブを使用しない

ファイルに対応するusingディレクティブを書き忘れたために解決できないタイプ名がコードに含まれているときはいつでも、小さなポップアップがタイプをインポートすることを提案します。

Namespace import quick-fix

Alt+Enterを押すと、適切なusingディレクティブが挿入されます。名前が一致する複数のタイプがある場合は、使用するタイプを選択するよう求められます(詳細はインポートする名前空間を参照)。

ポップアップが表示されたときに、何らかの理由で必要な名前空間をインポートしないことを選択した場合、またはReSharperオプションのコード・インスペクション | 設定ページでポップアップを使用して「名前空間をインポート」アクションを表示するチェックボックスをオフにした場合は、キャレットをインポートされていない型に置き、Alt+Enter を押して対応するクイックフィックスを選択することで、いつでも型をインポートできます。

ReSharper: quick-fixes for missing namespace import

たとえば、MyFramework.MyCollections.Listなど、システムタイプに似たソリューションがソリューションにある場合など、いくつかのシンボルを提案しないこともできますが、実際には使用していません。そのようなシンボルを提案から除外するには、ReSharperオプション(Alt+R,,O)のコード・インスペクション | 設定 | 自動インポートページのインポートおよび補完から除外リストに追加します。エントリの形式は Fully.Qualified.Name , Fully.Qualified.Name.Prefix*または *Fully.Qualified.Name.Suffixです。ジェネリック型は List`1として指定されます。

不足している非同期修飾子

await 演算子を含むが非同期として定義されていないメソッドがある場合、ReSharperはそのような不一致を検出し、対応するクイックフィックスを使用してこの問題を修正します。

次の前で改ページ:

Code Analysis Examples of Quick Fixes make async 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes make async 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes make async 03

ループをLINQ式に変換する

C# 3.0とLINQを使用することで、開発者はその意図をコンパイラに直接記述することで、データ集約型コードをより簡単に記述することができます。ReSharperは、LINQ構文を使用して書き換え可能なコードを検出し、自動的に変換を実行します。

次の前で改ページ:

Code Analysis Examples of Quick Fixes loops to LINQ 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes loops to LINQ 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes loops to LINQ 03

メソッドのパラメータと戻り値でIEnumerableに移行する

ReSharperは、コードベースをスキャンして、Array , ListArrayListなどのより具体的なタイプではなく、IEnumerable を安全に返し受け入れられるメソッドを検出します。

次の前で改ページ:

Code Analysis Examples of Quick Fixes use ienumerable 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes use ienumerable 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes use ienumerable 03

代入文をオブジェクトイニシャライザに変換する

ReSharperは、代入文をオブジェクトイニシャライザに変換するコンテキストアクションとクイックフィックスの両方を提供します。コンテキストアクションを使用すると、フィールドの割り当てを1つずつイニシャライザに追加できますが、クイックフィックスではすべてを一度に追加できます。クイックフィックスの仕組みは次のとおりです。

次の前で改ページ:

Code Analysis Examples of Quick Fixes object initializers 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes object initializers 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes object initializers 03

静的メソッド呼び出しを拡張メソッド呼び出しに変換する

ReSharperは、従来のC#静的メソッドとして拡張メソッドを呼び出すと、標準の拡張メソッド呼び出しの習慣にすばやく準拠できます。

次の前で改ページ:

Code Analysis Examples of Quick Fixes invoke as extension method 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes invoke as extension method 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes invoke as extension method 03

匿名メソッドをラムダ式に変換する

ReSharperは、匿名メソッドをラムダ式に変換することを提案しています。逆の機能はコンテキストアクションとして提供されます。

次の前で改ページ:

Code Analysis Examples of Quick Fixes to lambda 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes to lambda 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes to lambda 03

自動プロパティーに変換する

ReSharperを使用すると、従来のプライベートフィールドベースのプロパティーをC# 3.0で実装された自動プロパティーに素早く変換できます。詳細は、自動プロパティーの使用を参照してください。

次の前で改ページ:

Code Analysis Examples of Quick Fixes convert to auto property 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes convert to auto property 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes convert to auto property 03

型パラメータを不変にする

型パラメータの使用箇所がその分散に違反するとき、ReSharperはパラメータを不変にすることを提案します:

次の前で改ページ:

Code Analysis Examples of Quick Fixes make invariant 01

クイックフィックスの適用:

Code Analysis Examples of Quick Fixes make invariant 02

次の後で改ページ:

Code Analysis Examples of Quick Fixes make invariant 03
最終更新日: 2019年9月13日

関連事項

関連ページ:

使用からコードを生成する

ReSharperでは、宣言する前にコードシンボル(クラス、メソッド、変数、プロパティー、フィールドなど)を使用できます。ReSharperは、宣言されていないシンボルを検出すると、使用箇所に基づいて宣言を生成するための1つ以上のクイックフィックスを提案し、使用コンテキストに従って宣言をスマートに調...

メンバーの生成

ReSharperオプションのこのページでは、コード生成設定を調整できます。詳細は、コード生成を参照してください。生成されたメンバーのデフォルトボディスタイルこの設定では、生成されたメンバーの本体にReSharperが含めるものを選択できます。新しいNotImplementedException()...

不足している名前空間のインポート

ファイルに名前空間がインポートされていない型を使用する場合、ReSharperはこれらの型を見つけて不足している名前空間インポートディレクティブを追加できます。たとえば、ファイルにコードのブロックを貼り付けた後など、未解決の型にいくつかの不足している名前空間がある場合、ReSharperはこれらすべ...

自動プロパティーの使用

自動実装されたプロパティー(オートプロパティーも知られています)では、簡単な方法で追加のロジックを持たない型プロパティーを宣言できます。デフォルトでは、ReSharperは可能なときに自動プロパティーの使用を推奨しますが、この動作は設定可能です。デフォルトでは、ReSharper は自動プロパティー...

コードの課題のクイックフィックス

ReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。このトピックの内容:クイックフィックスの適用、Visual Stud...

コンテキスト・アクション

コンテキストアクションのいくつかの例をReSharperWebサイトでチェックすることができます。コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変...