C# のコンテキストアクション
ReSharper は、C# に対して以下のコンテキストアクションを提供します。
名前 | 説明 |
---|---|
XML ドキュメントに <exception> タグを追加する | <exception> タグを XML ドキュメントに追加します |
XML ドキュメントに <inheritdoc/> タグを追加する | XML ドキュメントがベース候補から継承されるように <inheritdoc/> を追加します |
別のアクセサーを追加する | イベントまたはプロパティに 2 番目のアクセサーを追加します |
switch セクションステートメントにブロック波括弧を追加する | スイッチセクションのステートメントに波括弧を追加 |
波括弧の追加 | ステートメントに波括弧を追加 |
分解パターンコンポーネント名を追加 | ソースパターンディスパッチタイプの名前に基づいて、明示的な分解パターンコンポーネント名を追加します。 |
匿名プロパティの明示的な名前を追加する | 匿名型のプロパティ宣言に明示的な名前指定を追加します |
ローカル関数の前に明示的な「return」または「Continue」を追加します | 実行可能コードをヘルパー関数から明確に分離するために、メンバーまたはサイクルの終わりのローカル関数の前に明示的な制御フロー移動を追加します。 |
引数に名前を追加 | 選択した引数に名前を追加します |
最後のパラメーターに「params」修飾子を追加します | 最後のパラメーターに「params」修飾子を追加し、アドホックコレクションを渡すことでメソッドの使用を更新します。 |
文字列フォーマットメソッド引数を追加する | 書式文字列に新しい書式項目を追加し、対応する引数をフォーマットメソッドの呼び出しに追加します 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
文字列補間引数を追加する | 文字列補間式に新しい引数を追加します。通常の文字列リテラルでも使用できます。 |
TestCase 属性を追加する | TestCase 属性を NUnit テストメソッドに追加します |
タプルコンポーネント名を追加 | ターゲットのタプルタイプの名前に基づいて、明示的なタプルコンポーネント名を追加します |
パターンの変数指定を追加 | 型テスト /null チェック / 関係パターンの変数指定を導入し、対応する 'switch' セクション内のキャストを置換する可能性があります |
「#pragma」ディレクティブに警告説明コメントを追加します | ID によって警告を無効化または復元する、警告の説明を含むコメントを「#pragma」ディレクティブに追加します。 |
生の文字列リテラル内の余分な引用符とドルを追加 / 削除する | 生の文字列内の引用符またはドル記号の数を変更する |
'switch' 条件コンポーネントを追加します | 'switch' 式 / ステートメントコンポーネントを追加します |
enum メンバーに 'EnumMemberAttribute' アノテーションを付ける | 各列挙型メンバーに 'EnumMemberAttribute' を追加します 詳細については、「コンテキストアクションを使用してアノテーション属性を追加する」を参照してください。 |
null 可能性属性を持つメンバーにアノテーションを付ける | nullability 属性を持つ型メンバーまたはパラメーターにアノテーションを付けます 詳細については、「コンテキストアクションを使用してアノテーション属性を追加する」を参照してください。 |
'DataMemberAttribute' でメンバーにアノテーションを付ける | すべてのパブリックプロパティとフィールドに「DataMemberAttribute」を追加します 詳細については、「コンテキストアクションを使用してアノテーション属性を追加する」を参照してください。 |
'OperationContractAttribute' でメソッドにアノテーションを付ける | 公開されたすべてのメソッドに 'OperationContractAttribute' を追加します 詳細については、「コンテキストアクションを使用してアノテーション属性を追加する」を参照してください。 |
アサートリファレンスが null ではありません | キャレット位置の変数に対して null 参照チェックを行う assert 文を追加 |
'set' と 'init' アクセサーを変更します | 「set」アクセサーと「init」アクセサーの種類の変更 |
メンバーの可視性を変更する | アクセス修飾子キーワードで利用可能で、宣言のアクセス権を変更できます |
現在のメンバーのシグネチャーを変更する | 現在のメンバーのシグネチャーを変更します |
「クラス」/「構造体」と「レコード」の間で型宣言の種類を変更します | 'class' /'struct' と 'record' の間で型宣言の種類を変更し、エラーを修正する可能性があります |
null または空の文字列のすべての文字列パラメーターを確認する | null または空の文字列のすべての文字列パラメーターをチェックします |
null または空白文字列のすべての文字列パラメーターをチェックする | null または空白文字列のすべての文字列パラメーターをチェックします |
配列のインデックス値を確認する | 配列のインデックス値をチェックします |
コレクションのインデックス値を確認する | コレクションのインデックス値をチェックします |
辞書のキー値を確認する | 辞書のキー値をチェックする |
すべてのパラメーターで null をチェックする | すべての関数パラメーターが null かどうかをチェックします |
enum パラメーターが enum 型で定義されているかどうかを確認する | 関数のパラメーターが列挙型で定義されているかどうかをチェックします |
数値パラメーターが範囲外かどうかを確認する | 指定された範囲の数値パラメーターをチェックします |
パラメーターが空のコレクションであるかどうかを確認する | 空のコレクションの関数パラメーターをチェックします |
パラメーターが有効でないかどうかを確認する | 関数パラメーターの有効性をチェックします |
パラメーターが null かどうかを確認する | 関数パラメーターの null をチェックします |
参照が null でないかどうかを確認する | 現在のステートメントを、キャレット位置の変数の null 参照チェックを実行する 'if' ステートメントに置きます。 |
文字列パラメーターが null か空文字列かをチェックする | null または空の文字列の文字列パラメーターをチェックします |
文字列パラメーターが null か空白文字列かをチェックする | null または空白文字列の文字列パラメーターをチェックします |
変数が null かどうかをチェックする | 変数の null をチェックします |
Span<T> インデックス値を確認してください | Span <T> /ReadOnlySpan<T> タイプのインデックス値をチェックします |
文字列のインデックス値をチェックする | 文字列のインデックス値をチェックします |
'StringBuilder' のインデックス値を確認する | 'StringBuilder' のインデックス値をチェックします。 |
定数値の計算 | 現在の式の値を計算し、それを置き換えます (たとえば 1 + 1 が 2 に置き換えられました) |
ネストチェックアサーションパターンを設定する | null チェックパターンを設定する ReSharper オプションページを開きます |
パラメーターの null チェックパターンを設定する | null チェックパターンを設定する ReSharper オプションページを開きます |
可変 null チェックパターンを設定する | null チェックパターンを設定する ReSharper オプションページを開きます |
'StringBuilder' で文字列を構築する | 文字列リテラルを、対応する「Append」呼び出しによる「StringBuilder」作成に変換します。 |
'?:' 条件式を 'if' ステートメントに変換する | 'if' ステートメントに値が返されるか代入される条件式を変換します |
'?:'条件式を'switch' 式に変換します | 'switch' 式に値が返されるか代入される条件式を変換します |
'==' 演算子を 'Equals()' 呼び出しに変換する | 等値演算子 ('==') の使用を 'Equals' メソッドの呼び出しに変換します |
'==' 演算子を 'object.ReferenceEquals()' 呼び出しに変換する | 等値演算子 ('==') の使用を 'object.ReferenceEquals' メソッドの呼び出しに変換します |
匿名メソッドをラムダ式に変換する | 無名メソッド式をラムダ式に変換します |
匿名型を名前付き型に変換する | 匿名型を名前付き型に変換し、選択したスコープ内のその使用箇所を置き換えます。 |
匿名型をタプルに変換する | 匿名型をタプル式に変換し、それを含むメソッド内の使用箇所を置き換えます。 |
配列の作成またはコレクションの初期化をコレクション式に変換する | 配列作成またはコレクション初期化式を C# 12 コレクション式形式に変換する |
デフォルトのボディを持つプロパティに自動プロパティを変換する | 自動プロパティをデフォルトのボディを持つプロパティに変換します 詳細については、自動プロパティを使用するを参照してください。 |
テキストと文字列のエスケープシーケンスを変換する | テキストとさまざまな形式の文字列エスケープシーケンスを変換します |
'catch(Exception)' 句を 'catch' に変換する | 「catch (System.Exception)」句を 'catch' 形式に変換します |
'catch' 句を 'catch(Exception)' に変換する | 'catch' 句を「catch (System.Exception)」形式に変換します |
コレクションの初期化子を 'Add' メソッド呼び出しに変換する | コレクション初期化子を一連の「Add()」メソッド呼び出しに置き換えます |
複合代入を通常の代入に変換する | 複合代入を通常の代入に変換します |
コンストラクターをファクトリメソッドに変換する | コンストラクターをファクトリメソッドに変換し、使用箇所をファクトリメソッド呼び出しに更新します |
現在の拡張メソッドを通常の静的メソッド形式に変換する | 'this' 修飾子を削除し、すべてのメソッドの使用箇所を更新することにより、現在の拡張メソッドを通常の静的メソッド形式に変換します |
現在のメソッドを拡張メソッド形式に変換する | 'this' 修飾子を追加し、すべてのメソッドの使用箇所を更新することにより、現在のメソッドを拡張メソッド形式に変換します |
'Equals' メソッド呼び出しを '==' 演算子の使用に変換します | インスタンスまたは静的 'Equals' メソッドへの呼び出しを、等号 ('==') または不等号 ('!=') 演算子の使用に変換します |
明示的な実装から明示的な実装への変換 | インターフェースメソッドの明示的な実装を暗黙的な実装に変換します |
式の本文メンバーを文の本文に変換する | 式のボディメンバーの宣言をステートメントボディのフォームに変換します |
式 lambda を文 lambda に変換する | 式のラムダ式をステートメントボディ形式に変換します |
式を「StringBuilder」に変換します | 式を「StringBuilder」に変換します |
式を「StringBuilder」呼び出しに変換する | 「StringBuilder」内の式を対応する「StringBuilder」呼び出しに変換します |
'ForEach' メソッド呼び出しを 'foreach' ステートメントに変換する | 'xs.ForEach(x => ...)' を正規の 'foreach' ステートメントに変換します |
foreach を for ループに変換する | 索引によって要素への直接アクセスを可能にするコレクション上で実行される 'foreach' 文に作用します。このような 'foreach' 文を 'for' 文に変換します。 |
'if' 文を '?:' 条件式に変換する | 値を返すか、各ブランチ内で代入を実行する 'if' ステートメントで動作します。ステートメントを条件式 ('x ? a : b') に変換します。 |
case if 節を切り替えるために 'if' 文を変換する | スイッチセクションの先頭にある 'if' ステートメントで機能し、'if' コンテンツを含む保護されたセクションと他のブランチを含む保護されていないセクションに分割します。 |
'if' ステートメントを 'switch' 式に変換する | 型チェックを実行したり、式の値を 1 つ以上の定数と比較したりする 'if' ステートメントで機能します。'if' ステートメントを単一の 'switch' 式に変換します。 |
'if' 文を 'switch' 文に変換する | 型チェックを実行したり、式の値と 1 つ以上の定数を比較する if 文に作用します。'if' ステートメントを単一の 'switch' ステートメントに変換します。 |
暗黙的インターフェースから明示的インターフェースへの変換を変換する | インターフェースメンバーの暗黙的な実装を明示的な実装に変換します |
整数リテラルをバイナリ形式に変換する | 整数リテラルをバイナリ形式に変換します |
整数リテラルを 16 進形式に変換します | 整数リテラルを 16 進形式に変換します |
整数リテラルを 10 進形式に変換する | 整数リテラルを小数形式に変換します |
リストパターンに変換 | コレクション長チェックをリストパターンに変換します (たとえば 'x は { 長さ: 0 }' -> 'x は []' です) |
無効な文字リテラルを文字列に変換する | 無効な文字リテラルを文字列リテラルに変換します |
イテレータをメソッドに変換する | List <T> の fill または配列の戻り値を使用してイテレータをメソッドまたはプロパティに変換します |
ラムダ式を匿名メソッドに変換する | ラムダ式を匿名メソッド式に変換します |
コードに LINQ を変換する | LINQ をコードに変換する |
LINQ をメソッドチェーンに変換する | LINQ クエリを拡張メソッド呼び出しに変換します |
メンバー値チェック式を再帰パターンに変換する | メンバーの読み取りアクセスを、対応するパターンで定数値をチェックするように置き換えます。 |
メソッドグループを匿名メソッドに変換する | メソッドグループを無名メソッドに変換します |
方法グループをラムダに変換する | メソッドグループをラムダ式に変換します |
メソッドをプロパティに変換する | 戻り値を持つパラメーターなしのメソッドをプロパティ宣言に変換します |
複数行の文字列を個別の 'AppendLine' 呼び出しに変換します | 'StringBuilder' 内の複数行の文字列を個別の 'AppendLine' 呼び出しに変換します |
not null チェックをオブジェクトパターンチェックに変換する | null 以外のチェック式をパターンマッチングチェックに変換します |
null 合体代入を if 文に変換 | null 合体代入を if 文に変換します |
NULL 合体式を 'if' ステートメントに変換します | null 合体式を 'if' ステートメントに変換します |
オブジェクト初期化子を代入文に変換する | オブジェクト初期化子を一連の割り当てステートメントに置き換えます |
オブジェクト初期化子をコンストラクター呼び出しに変換します | オブジェクト初期化子を、名前と型が一致するパラメーターを持つコンストラクターの呼び出しに置き換えます |
プロパティをメソッドに変換 | プロパティをメソッド宣言に変換します |
'ReferenceEquals' メソッド呼び出しを '==' 演算子の使用に変換する | 静的 'ReferenceEquals' メソッドへの呼び出しを、等価 ('==') または不等価 ('!=') 演算子の使用に変換します |
通常の文字列補間を生の文字列補間に変換する | 通常の文字列補間を raw に変換します |
通常の文字列リテラルを生の文字列リテラルに変換する | 通常の逐語的な文字列リテラルを生の文字列に変換します |
ステートメント本体メンバーを式本体に変換する | ステートメント本体のメンバー宣言を式本体の形式に変換します |
文 lambda を式 lambda に変換する | ステートメント本体のラムダ式を式本体の形式に変換します |
文字列比較を 'string.Equals' 呼び出しに変換する | 文字列比較を「string.Equals」メソッド呼び出しに変換します |
文字列補間を 'string.Format' 呼び出しに変換する | 文字列補間式を対応する「string.Format」メソッド呼び出しに変換します |
文字列リテラルを文字列補間に変換する | 通常の文字列または逐語的な文字列を、対応する種類の文字列補間式に変換します |
'string.Format' を文字列補間に変換する | 'string.Format' を文字列補間に変換します (それが引数の評価の順序を変更する可能性があるとしても) |
'switch' 式を条件付きに変換しますか? : 式 | 'switch' 式を一連の条件付き(3 値)に変換しますか? : 式 |
'switch' 式を 'if' ステートメントに変換します | 'switch' 式を 1 つまたは複数のネストされた 'if' ステートメントに変換し、それぞれが個々のパターンをチェックします |
'switch' 式を 'switch' ステートメントに変換します | 'switch' 式を 'switch' ステートメントに変換します |
'switch' ステートメントを 'if' ステートメントに変換します | 'switch' ステートメントを 1 つまたは複数のネストされた 'if' ステートメントに変換し、それぞれが個々のパターンをチェックします |
'switch' ステートメントを 'switch' 式に変換する | 'switch' ステートメントを 'switch' 式に変換します |
配列作成式に変換する | C# 12 コレクション式を配列作成式構文に置き換えます |
コレクション初期化子に変換する | C# 12 コレクション式をコレクション初期化構文に置き換えます |
「グローバル使用」に変換する | 選択した 'using' ディレクティブをグローバルディレクティブに変換し、別のファイルに移動します。 |
非グローバル 'using' に変換する | 必要に応じて、'using' ディレクティブを別のファイルからすべてのプロジェクトファイルに移動します。 |
通常の文字列補間に変換する | 逐語的な文字列補間 $@".." を通常の $".." に変換します。 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
通常の文字列リテラルに変換する | 逐語的な文字列 @".." を通常の文字列 ".." に変換します。 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
個別の「Append」呼び出しと「AppendLine」呼び出しに変換します | 単一の「AppendLine」呼び出しを個別の「Append」と「AppendLine」呼び出しに変換します |
トップレベルコードに変換する | 「Program」クラスと「Main」メソッドを最上位コードに置き換えます |
「try-finally」ステートメントに変換する | 'using' ステートメントを 'try-finally' ステートメントに変換する |
'using' 宣言に変換 | 'using' ステートメントを 'using' 宣言に置き換えます |
'using' ステートメントに変換する | 'using' 変数宣言を 'using' ステートメントに置き換えます |
逐語的な文字列補間に変換する | 通常の文字列補間 $".." をそのまま $@".." に変換します。 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
逐語的な文字列リテラルに変換する | 通常の文字列リテラル「..」を逐語的な文字列 @「..」に変換します。 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
逐語的に生の文字列補間に変換する | 逐語的な文字列補間を raw に変換します |
逐語的に生の文字列リテラルに変換する | 逐語的な文字列リテラルを生の文字列に変換します |
'with' 式を一時変数のミューテーションに変換する | 構造体またはレコードをローカル変数にコピーし、そのメンバーを変更し、この変数を 'with' 式の代わりに使用します。 |
現在の型宣言をコピー | 現在のメンバーのシグネチャーを変更します |
ベースメンバーから XML ドキュメントをコピーする | XML ドキュメントを基底から優先メンバー / 型にコピーする |
型宣言の別の部分を作成する | 必要に応じてタイプを部分的としてマークし、新しいファイルに新しいパーツを作成します |
'params' パラメーター引数からコレクション式を作成する | 'params' パラメーター引数からコレクション式を作成します |
派生型の作成 | インターフェースを実装するか、クラスを継承するクラスを作成します |
イベントの呼び出し側を作成する | イベント呼び出しメソッドを作成します |
'params' パラメーター引数から明示的な配列作成を作成します | 「params」パラメーター引数から明示的な配列作成を作成します |
'params' パラメーター引数から明示的なコレクション作成を作成する | 'params' パラメーター引数から明示的なコレクション作成を作成します |
一次コンストラクターの明示的なコンストラクター宣言を作成します | レコードのプライマリコンストラクターの明示的なコンストラクター宣言を作成します |
プライマリコンストラクターのパラメーターの明示的なフィールド宣言を作成する | プライマリコンストラクターのパラメーターの明示的なフィールド宣言を作成します |
位置パラメーターの明示的なプロパティ宣言を作成します | レコードの位置パラメーターの明示的なプロパティ宣言を作成します |
一致するチェック済み演算子を作成する | 一致するチェック演算子を作成します |
パラメーターなしでオーバーロードを作成する | パラメーターを指定せずにオーバーロードを作成します。現在のメソッドを呼び出します。 |
式からのリターンを作成する | 式文として取られた値を持つ return 文を生成する |
単体テストの作成 | ターゲットクラスのテストクラスを作成します |
変数を分解する | 変数を複数の位置コンポーネントに分解します |
コメントの削除 | 選択したコメントを削除します |
コメントの削除 | コメントを削除する |
「'do-while' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが「do」、'while' キーワード上にある場合、「'do-while' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'fixed' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'fixed' キーワード上にある場合、「'fixed' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'fixed' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'fixed' キーワード上にある場合、「'fixed' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'for' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'for' キーワード上にある場合、「'for' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'foreach' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'foreach' キーワード上にある場合、「'foreach' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'if' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'if' 上にある場合、「'if' ステートメントで中括弧を強制する」インスペクション、「else」キーワードを有効にすることを提案します。 |
「'lock' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'lock' キーワード上にある場合、「'lock' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'using' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'using' キーワード上にある場合、「'using' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
「'while' ステートメントで中括弧を強制する」を有効にするインスペクション | キャレットが 'while' キーワード上にある場合、「'while' ステートメントで中括弧を強制する」インスペクションを有効にすることを提案します。 |
現在のソリューションで「Null 許容警告を '!' で抑制する」クイックフィックスを有効にする | キャレットが「!」上にある場合、現在のソリューションに対して「「!」を使用して null 許容警告を抑制するクイックフィックス」を有効にすることを提案します。トークン |
「null 許容警告が抑制されていると、根本的な問題が隠されている可能性があります」インスペクションを有効にします。 | キャレットが「!」の場合、「抑制された null 許容警告が根本的な問題を隠す可能性がある」インスペクションを有効にすることを提案します。オペレーター |
「ローカル関数を静的にできる」インスペクションを有効にする | キャレットがローカル関数の「静的」キーワードにある場合、「ローカル関数を静的にすることができます」インスペクションを有効にすることを提案します |
「構造体メンバーを読み取り専用にできる」を有効にするインスペクション | キャレットが「読み取り専用」キーワード上にある場合、「構造体メンバーを読み取り専用にできる」インスペクションを有効にすることを提案します。 |
「行末の不要な空白」インスペクションを有効にする | キャレットが末尾の空白にある場合、「行末の不要な空白」インスペクションを有効にすることを提案します |
「インデントに集計文字の使用を禁止する」インスペクションを有効にする | キャレットがタブ文字のある空白の上にある場合、「インデントに集計文字を使用することは禁止されています」インスペクションを有効にすることを提案します |
遅延フィールドをカプセル化する | 既存のフィールドがない場合は、遅延フィールドをプロパティにカプセル化します |
式の評価 | 単純式を評価し、評価値で置き換えます |
匿名メソッド式をローカル関数に抽出する | 匿名メソッド式を包含スコープのローカル関数に抽出します |
名前付きメソッドに匿名メソッド式を抽出する | 匿名メソッド式を包含型のプライベートメソッドに抽出します |
ラムダ式をローカル関数に抽出する | ラムダ式を包含スコープ内のローカル関数に抽出します |
ラムダ式を名前付きメソッドに抽出する | ラムダ式を包含型のプライベートメソッドに抽出します |
ローカル関数を通常のメソッドに抽出する | ローカル関数を包含型の通常のメソッドに抽出し、必要に応じてそのクロージャを解除します。 |
選択したコードからメソッドを抽出する | 選択した式またはステートメントから新しいメソッド、プロパティ、ローカル関数を作成し、選択を関数呼び出しに置き換えます |
塗りつぶしオブジェクト初期化子 | オブジェクト初期化子でフィールドとプロパティを初期化します |
null 許容の警告抑制を見つける | 選択したスコープ内のすべての null 許容警告抑制式を検索します |
無効なエスケープシーケンスを修正 | すべての文字をエスケープすることにより、文字列内の無効なエスケープシーケンスを修正します |
無効な通常の文字列を修正する | 文字列を逐語的にすることで、文字列内の無効な文字を修正します |
正規表現を修正する | 正規表現の無効な文字を修正 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
文字列補間における三項演算子の修正 | 三項演算子を括弧で囲み、補間された文字列が偽のブランチを書式指定子として解釈しないようにします |
呼び出し式を反転します | 現在の呼び出し式を反転します。'left.Equals(右)' から 'right.Equals(左)' |
演算子引数を反転する | 選択した演算子の左右のオペランドを反転します。「null == リスト」から「リスト == null」 |
リレーショナル式を反転する | 現在の関係式を反転します。「list.Count > 1」から「1 < list.Count」 |
型、静的メンバー、または名前空間への参照を完全修飾する | 型、静的メンバー、または名前空間への参照の完全修飾を挿入します |
enum フラグをチェックする拡張メソッドを生成する | 列挙値に指定されたフラグが含まれているかどうかを確認する拡張メソッドを生成します |
型パターンを生成する | 型パターンを生成する |
抽象メンバーの実装 | インターフェースメンバーまたは抽象メンバーで動作します。このメンバーを実装する必要があるクラスを検索し、いずれかのメンバーに実装することを許可します。 |
カスタムイベントアクセサーを実装する | イベントの「追加」および「削除」メソッドのカスタム実装用のプレースホルダーを追加します |
'INotifyPropertyChanged' パターンを実装する | 文字列リテラルパラメーターで「PropertyChanged」イベントを呼び出すメソッドを作成します 詳細については、「コンテキストアクションを使用してアノテーション属性を追加する」を参照してください。 |
静的ディレクティブを使用して静的メンバーをインポートする | C# 6.0 で 'static' ディレクティブを使用してファイルの型の静的メンバーをインポートします |
メンバーアクセスをオブジェクトパターンに含める | 「is」/ 'switch' 演算子のソース式のメンバーアクセスを対応するパターンに置き換えます |
コンストラクターパラメーターから自動プロパティを初期化する | オプションで、コンストラクターパラメーターから自動プロパティを作成および初期化する |
コンストラクターパラメーターからフィールドを初期化する | オプションで、コンストラクターパラメーターからフィールドを作成して初期化する |
コンストラクターパラメーターからメンバーを初期化する | オプションでコンストラクターを作成し、コンストラクターのパラメーターからメンバーを初期化します。 |
コンストラクターパラメーターから非プライベートフィールドを初期化します | コンストラクターパラメーターから非プライベートフィールドを初期化します |
インラインコントロール転送ステートメント | 'return' や 'continue' などのコントロール転送ステートメントを上記のステートメントにインライン化します |
インラインアウト変数宣言 | ローカル変数宣言を宣言式として置き換えます |
インライン文字列補間引数 | 文字列リテラルまたはネストされた文字列補間を、それを含む補間文字列にインライン化します。 |
インライン一時変数 | 同じ値をアドレス指定する異なる名前の量を減らすために、他の変数 / パラメーターの値で初期化されたインライン一時変数 |
エイリアスを使用したインライン化 | 'using' エイリアスを、それが使用されるコンテキストにインライン化します。 |
変数を条件式にインライン化する | 変数を条件式にインライン化して、パターンマッチングを実行します。 |
匿名メソッドシグネチャーを挿入する | 匿名メソッドのパラメーターなしの宣言に適切な署名を追加します |
整数リテラルに桁区切りを挿入する | 整数リテラルの一般的な場所に桁区切り記号を配置します: 10 進リテラルでは数千、16 進リテラルでは 16 ビットワード、2 進リテラルではバイトを区切ります |
実数リテラルに桁区切りを挿入する | float/double/decimal 型の実数リテラルで桁区切り記号を配置して千単位を区切ります |
ジェネリクスメソッド呼び出し型引数を挿入する | メソッドグループ式からジェネリクスメソッド呼び出し / デリゲート作成の推論された型引数を挿入します。キャレットがメソッド名の最後にある場合に使用できます。 |
ラムダ式パラメーターの署名を挿入する | 暗黙的に型指定されたラムダパラメーターの明示的な型指定を追加します |
ラムダ式の戻り値の型指定を挿入 | ラムダ式の明示的な戻り値の型指定を追加 |
デフォルトリテラルの後に型指定を挿入する | デフォルトのリテラルをデフォルトの式に変換します |
選択した式のパラメーターを導入する | 選択した式の新しいパラメーターを作成します |
型エイリアスの導入 | 選択したタイプに 'using' エイリアスを導入します |
選択した式の変数を導入する | 選択した式の新しい変数を作成します |
反転 '?:' 演算子条件 | 条件を反転し、'?:' 条件式のブランチをスワップします。 |
'if' ステートメントを逆転 | 'if' 文のガード条件を反転し、それに応じてブランチのコードを入れ替えます |
拡張メソッドを通常の静的メソッドとして呼び出す | 呼び出し構文を拡張メソッドから静的メソッド呼び出し形式に変更します |
'foreach を待つ ' を介して繰り返す | 式を反復する「await foreach」ステートメントを生成します |
'foreach' 経由で繰り返し | 式を反復する 'foreach' ステートメントを生成します |
'foreach' 経由で繰り返し (ライブテンプレートに基づく) | 式を反復する 'foreach' ステートメントを生成します |
属性を単一のセクションに結合する | 属性を単一のセクションに再配置する |
ローカル変数宣言と代入を結合する | イニシャライザーなしで宣言された変数への代入に作用します。宣言を現在のポイントに移動し、割り当てにマージします。 |
代入で null チェックに参加する | 'if' ステートメントを「??」を使用したコードに置き換えます。演算子と 'throw' 式 |
結合文字列リテラル | 2 つの文字列リテラルを 1 つに連結します |
ローカル関数クロージャをパラメーターに持ち上げます | 含まれているメソッドのローカル変数に対するローカル関数クロージャをローカル関数のパラメーターに変換します |
メソッドを部分的にする | private void メソッドを部分的なメソッド定義に変換します |
文字列補間として文字列リテラルをマークする | 内容を変更せずに、通常の文字列または逐語的な文字列に「$」を追加します |
ファイル名と型名を一致させる | 現在のファイルの名前を、そこで宣言されている唯一のトップレベルの型の名前に一致するように変更します |
展開された宣言をマージする | 展開された宣言を単一の変数宣言にマージします |
ネストした 'if' ステートメントをマージ | 元の条件の結合をチェックする単一の 'if' ステートメントに、ネストされた 2 つの 'if' ステートメントをマージします。 |
部分メソッド宣言をマージする | 部分メソッドのすべての宣言を単一の宣言にマージします |
部分型宣言をマージする | 部分型のすべての宣言を単一の宣言にマージします |
順次検査を null 伝播式にマージする | 条件付きアクセス式を使用して順次 null/ 型チェックをマージします ('?' オペレーター) |
順次 null/ パターンチェックを単一のパターンチェックにマージします | シーケンシャル null/ パターンチェックを単一の再帰 / 論理パターンチェックにマージします |
#nullableenable に移行します | [NotNull]/[CanBeNull] 属性をコンパイラーの #nullable コンテキストと型アノテーションに移行 |
ローカル関数を包含スコープの末尾に移動します | 実行可能コードをヘルパー関数の宣言から明確に分離するために、ローカル関数を包含スコープの最後に移動します。可能な場合は、「return」または「Continue」などの明示的な制御フロー移動で区切ります。 |
コンストラクター内の代入を初期化子に移動する | コンストラクターから field/event/property initializer に割り当てを移動します |
宣言を別の型部分に移動する | 選択された宣言範囲または単一の宣言 (宣言名を選択せずに呼び出された場合) を部分型の別の型部分に移動します |
初期化をコンストラクターに移動する | フィールド / イベント / プロパティの初期化子をコンストラクターに移動します。 |
ローカル変数、定数、関数宣言を外側のスコープに移動する | ローカル変数 (初期化あり)、ローカル定数、ローカル関数宣言を外部スコープに移動します |
名前を一致させるためにタイプを別のファイルに移動する | 現在のタイプを別のファイルに移動して、その名前がタイプの名前と一致するようにします |
論理式を否定する | 論理式を否定する |
仮想メンバーを上書きする | 仮想メンバーで動作します。このメンバーをオーバーライドできるクラスを検索し、それらの 1 つまたはすべてでオーバーライドできるようにします。 |
パス文字列補間式 | フォーマットメソッドの呼び出しを文字列補間式の受け渡しに置き換えます。一部のフォーマットメソッド (ロギングフレームワークなど) は、文字列補間式が常に評価される一方で、引数のフォーマットを常に実行するとは限らないため、注意して使用してください。 |
'string.Format' メソッドの呼び出しを渡す | format メソッドの呼び出しを、'string.Format' メソッドの呼び出し結果を渡すことで置き換えます。'string.Format' は常に文字列を生成しますが、一部のフォーマットメソッド (ロギングフレームワークなど) は常に引数のフォーマットを実行するとは限らないため、注意して使用してください。 |
変数を 'using' 内に入れる | 'System.IDisposable'、'System.IAsyncDisposable'、または使い捨てパターンを実装する型の変数宣言を 'using' ステートメントに変換します。これは、使い捨てオブジェクトの有効期間を強制する場合に役立ちます。 |
static using ディレクティブを使用してインポートされた静的メンバーを修飾します | C# 6.0 を使用してスコープにインポートされた静的メンバー用の型修飾を 'static' ディレクティブを使用して挿入します |
#region、#endregion ディレクティブを削除 | #region と対応する #endregion ディレクティブのペアを削除します 詳細は、#region ブロックの追加と削除を参照してください。 |
引数名の除去 | 選択した引数から名前を削除します |
波括弧の除去 | コード内の 1 つ以上のステートメントの周囲の不要な波括弧を削除します |
分解パターンのコンポーネント名を削除 | ソースパターンディスパッチタイプの名前に基づいて、明示的な分解パターンコンポーネント名を削除します |
数値リテラルから桁区切り記号を削除する | 整数または実数のリテラルから桁区切りを削除します |
最後のパラメーターから 'params' 修飾子を削除します | 最後のパラメーターから 'params' 修飾子を削除し、メソッドの使用を更新します |
余分な括弧を削除する | 重複している場合は括弧を削除します |
文字列フォーマットメソッドの引数を削除する | フォーマット文字列項目と対応するフォーマットメソッド引数をフォーマットメソッドの呼び出しから削除します 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
'switch' 条件コンポーネントを削除します | 'switch' 式 / ステートメントコンポーネントを削除します |
タプルコンポーネント名を削除 | タプル式の明示的なタプルコンポーネント名を削除します |
'.IfNotNull(x => x.Smth)' を '?' で置き換えてください。表現 | 「.IfNotNull(x => x.Smth)」などの拡張メソッドの使用を条件付きアクセス式に置き換えます ('?' オペレーター) |
「?:」を null 伝播式で置き換える | 条件式 ('?:' 演算子) を null 合体 (?? 演算子) または条件付きアクセス式に置き換えます (? オペレーター) |
配列初期化子を式で置き換える | 配列初期化子を配列作成式に置き換えます |
自動実装されたプロパティアクセサーを明示的に実装されたアクセサーに置き換える | 本体のない自動実装されたアクセサーを明示的に実装されたアクセサーに置き換えます |
自動プロパティをプロパティおよびバッキングフィールドに置き換える | 自動プロパティをバッキングフィールドを使用するプロパティに置き換えます |
自動プロパティをプロパティと「フィールド」キーワードに置き換えます | 自動プロパティを匿名フィールドを使用するプロパティに置き換えます |
呼び出しチェーンを別の呼び出しに置き換える | チェーンの呼び出しを各メソッドの個別の呼び出しに置き換え、必要に応じて変数を導入します。 |
キャスト式を安全な 'as' キャストに置き換える | 正規キャスト式を安全なキャスト 'as' 式に置き換えます |
条件付きアクセス式を無条件アクセスで置き換えます | 条件付きアクセス式('?' 演算子)を通常の無条件アクセスに置き換えます |
明示的な型指定を 'var' に置き換える | 変数の型が変更される場合でも、型を「var」に置き換えることができます |
「field」キーワードを明示的なフィールド宣言に置き換えます | プロパティ宣言の「field」キーワードを明示的なフィールド宣言に置き換えます |
'if' 文を null 伝播で置き換える | 'if' ステートメントを条件付きアクセス式に置き換えます (null-propagation) |
論理式を等式で置き換える | 等式で論理式を反転 |
メンバーアクセスを条件付きアクセス式で置き換える | メンバーアクセス / 呼び出しまたはインデクサーアクセスを条件付きアクセス式で置き換えます ('?' オペレーター) |
null 伝播式を '?:' 条件演算子で置き換えます | null 合体 ('??' 演算子) または条件付きアクセス式 ('?.' 演算子) を条件式に置き換えます ('?:' 演算子) |
null 伝播式を 'if' ステートメントに置き換える | C# 6.0 条件付きアクセス式を 'if' ステートメントに置き換えます |
自動プロパティを使用してバッキングフィールドにプロパティを置き換える | バッキングフィールドを使用するプロパティを自動プロパティに置き換えます 詳細については、自動プロパティを使用するを参照してください。 |
安全性を「キャスト式」として通常のキャストに置き換える | 安全な 'as' キャスト式を通常のキャスト式に置き換えます |
個別の宣言宣言を単一の宣言に置き換える | 別々の分解宣言を単一の宣言に置き換えます |
'var' を明示的な型宣言で置き換える | 「var」を明示的な型宣言に置き換えます |
アクセス式に置き換える | 単純な再帰パターンを通常または条件付きのプロパティアクセス式に置き換える |
逆代入文 | 割り当てステートメントのソース部分と宛先部分を逆にします |
ループの 'for' ループステートメント | 'for' ループステートメントの繰り返しの順序を逆にします |
ループの 'for' ループステートメント | 'for' ループステートメントの繰り返しの順序を逆にします |
プロジェクトの「ConfigureAwait」分析モードを設定します | プロジェクトの 'ConfigureAwait' 分析モードを設定します |
プロジェクトの言語レベルを設定する | プロジェクトの言語レベルを設定します |
'using' ディレクティブを並べ替える | ファイル内の 'using' ディレクティブを構文スタイル設定に従って並べ替えます |
明示的に配列型を指定する | 配列作成式に明示的な型指定を追加 |
作成したタイプを指定します | 作成した型を明示的に指定 |
enum メンバー値を指定する | すべての列挙メンバーに明示的な値の指定を追加します |
'および' パターンを複数の 'is' 式またはガード式に分割する | 論理「and」パターンを一連の「is」式またはガード式に分割します |
属性を別々のセクションに分割する | 属性を別のセクションに再配置する |
呼び出しチェーンを 2 つの部分に分割する | チェーンの呼び出しを 2 つの部分に分割します。キャレットのメソッド呼び出しから始まり、必要に応じて変数を導入します。 |
宣言リストを分割する | 複数の変数を宣言する変数宣言文に作用します。そのようなステートメントは、それぞれが単一の変数を宣言する複数のステートメントに分割されます。 |
ガード句を ' で分割 | | ガード句を含む 2 つのケースラベルへの ' 条件 | ガード句が 2 つのより単純な条件の論理和('||')である switchcase ラベルで機能します。switch case のラベルを 2 つの別々のラベルに変換します。 |
'if' を '&&' で分割する - 条件を入れ子にした 'if' 文に分割する | 'if' ステートメントで機能します。その条件は、2 つのより単純な条件の接続詞('&&')です。'if' ステートメントを 2 つのネストされた 'if' ステートメントに変換します。 |
'if' と ' | | ' - 2 つの if 文への条件 | 'if' ステートメントで機能します。その条件は、2 つのより単純な条件の論理和('||')です。'if' ステートメントを等しい本体を持つ 2 つの 'if' ステートメントに変換します。 |
ネストされたパターンに分割 | ネストされたプロパティで一致する個別の再帰パターンを作成します |
リストパターンを複数の連続したチェックに分割する | リストパターンのサブパターンを '&&' 演算子で結合されたチェックに抽出します |
分割ローカル変数の宣言と初期化 | 変数初期化子式を別の割り当てステートメントに移動します |
分割ローカル変数の宣言と初期化 | 変数宣言を外側のスコープに移動します |
null 伝播式を順次チェックに分割する | 条件付きアクセス式 ('?.' 演算子) を連続した null/ 型チェックに分割します |
'または' パターンを複数の 'is' 式または 'switch' ケースに分割する | 論理「or」パターンを一連の「is」式または複数の 'switch' ケースに分割します |
再帰パターンをいくつかの連続したチェックに分割します | 再帰パターンのサブパターンを '&&' 演算子で結合されたチェックに抽出します |
ブール値の 'return' ステートメントを 'if' ステートメントに分割 | 値がブール型の「return」ステートメントで機能します。'return' ステートメントを 2 つの 'return' ステートメントを持つ 'if' ステートメントに変換し、'true' と 'false' の値を返します。 |
'&&' をつけて 'return' を分割する - 'if' と 'return' をガードするための条件 | 'return' ステートメントで機能します。その値は、2 つのより単純な条件の接続詞('&&')です。'return' ステートメントを保護 'if' ステートメントと 'return' に変換します。 |
文字列リテラルの分割 | 文字列リテラルを 2 つのリテラルに分割します |
タプルの割り当てを個別の割り当てステートメントに分割する | タプルの割り当てまたは宣言を含むステートメントを個別のステートメントに分割します |
分割された値は ' | | 'if' と 'return' ステートメントへの条件 | 'return' ステートメントで機能します。その値は、2 つのより単純な条件の論理和('||')です。'return' ステートメントを 'if' および 'return' ステートメントに変換します。 |
「var」パターンを別の変数宣言に分割する | 「var」パターンを別のステートメントの変数宣言に分割します |
'string.Format' コールでのサラウンド文字列リテラル | 文字列リテラルを「string.Format()」メソッド呼び出しで囲みます |
"" で囲む | 選択テキストの文字列リテラルを作成します |
抽象 / 仮想 / 非抽象 / 非仮想メンバーへ | 型メンバーを抽象、仮想、非抽象、非仮想にします |
ブロックスコープの名前空間へ | ファイルスコープの名前空間をブロックスコープの名前空間に変換します |
明示的な「Program」クラスへ | トップレベルのコードを明示的な「Program」クラスと「Main」メソッドに置き換えます |
ファイルスコープの名前空間へ | ブロック本体を持つ名前空間をファイルスコープの名前空間に変換します |
LINQ to JSON へ | JSON 文字列を JSON.NET オブジェクトに変換します |
LINQ to XML へ | XML 文字列を「LINQ to XML」オブジェクトに変換します |
名前付きプロパティパターンへ | 位置分解パターン句を、対応するメンバーの名前付きプロパティパターンに置き換えます |
プリコンパイルされた 'Regex' オブジェクト | 「Regex」タイプのフィールドとプリコンパイルオブジェクトを導入します 詳細については、「正規表現のサポート」を参照してください。 |
INotifyPropertyChanged 変更通知でプロパティへ | setter での「INotifyPropertyChanged」変更通知呼び出しを使用して、自動プロパティをプロパティに変換します。 詳細については、「inotifypropertychanged サポート」を参照してください。 |
変換パラメーター | パラメーターと戻り値を変換します |
コメント解除 | コードブロックからコメントを削除する 詳細については、「コードのコメント化とコメント化解除」を参照してください。 |
'as' を使用して null をチェックする | 'if(a is B){}' を 'var b = a asB; に変換します。if(b!= null){} ' そして使用箇所を更新します |
'ConfigureAwait(false)' 呼び出しを使用します | 「await」コンテキストのタスクのような式に「ConfigureAwait(false)」呼び出しを追加します |
明示的破棄宣言を使用する | 「var」を破棄宣言に追加して、「_」という名前の他の要素との衝突の可能性を防ぎます |
明示的または暗黙的なタプルコンポーネント名を使用する | 明示的タプルコンポーネント名と暗黙的タプルコンポーネント名を切り替えます。タプルコンポーネントリファレンスで利用できます。 |
フォーマット文字列を使用する | いくつかの文字列と他のオブジェクトの連結を「String.Format」メソッドの使用に変換します 詳細については、「コード分析と文字列リテラルのヘルパー」を参照してください。 |
暗黙の破棄宣言を使用する | 破棄宣言から重複した 'var' キーワードを削除 |
「MinBy」または「MaxBy」を使用する | 「First」または「Last」をオーダーして取得する代わりに、「MinBy」または「MaxBy」を使用します |
'nameof' 式を使用してエンティティの名前をキャプチャーします | 文字列リテラルにハードコードする代わりに、'nameof' 式を使用してエンティティの名前をキャプチャーします。 |
割り当て /.Add() メソッド呼び出しの代わりにオブジェクト / コレクション初期化子を使用する | 一連の割り当てまたは「Add()」呼び出しをオブジェクトまたはコレクションの初期化式に置き換えます 詳細は、コードインスペクション: 可能な場合はオブジェクトまたはコレクション初期化子を使用するを参照してください。 |
位置分解パターンを使用する | 再帰パターンのプロパティパターンメンバーを位置分解パターンに置き換えます |
分解宣言 / パターンで別々の宣言を使用する | 単一宣言を分解内の別々の変数宣言に置き換えます |
スタックに割り当てられた変数に Span <T> を使用する | スタックに割り当てられた変数に Span<T> を使用します |
文字列補間を使用する | いくつかの文字列とその他のオブジェクトの連結を、文字列補間の使用に変換します |
'System.Environment.NewLine' 値を使用する | "\n" ,"\r"、または "\r\n" リテラルの代わりに 'System.Environment.NewLine' を使用します |
'System.String.Empty' 値を使用する | "" リテラルの代わりに 'System.String.Empty' を使用します |
ターゲットタイプの新しいを使用する | 明示的な型指定を削除して 'new' 式を単純化します |
型エイリアスを使用する | 可能な場合は、選択したタイプのエイリアスを使用する |
複数の変数を持つ宣言を分解するには、「var (...)」構文を使用します | 'var (...)' 構文を使用して明示的な型を持つ複数の変数で宣言を置き換え、すべて暗黙的に型指定することができます |
ドキュメントを書く | 宣言のための XML ドキュメントを書く |
関連ページ:
文字列リテラルのコード分析とヘルパー
プレーン文字列:コードにプレーンな文字列を使って作業しているときに ReSharper がどのように役立つかは次のとおりです。デフォルトでは、ReSharper は、すべての非逐語的な文字列の正しいおよび不正なエスケープシーケンスをハイライトします。キャレットが文字列内にあるときにを押し、対応するコンテキストアクションを選択することで、通常の文字列を逐語的な文字列に変換したり、元に戻したりできます。これは、補間された文字列でも機能します。Enter を押すだけで、文字列リテラルを分割できます。...
ソースコードのアノテーション
ReSharper のコードアノテーションの恩恵を受ける最も簡単な方法は、ソースコードのシンボルにアノテーション属性を追加し、ReSharper がソリューションをより正確かつ洞察力で分析できるようにすることです。デフォルトでは、すべてのアノテーション属性クラスは属性でマークされているため、コンパイラーはコード内の属性の使用を無視します。つまり、'JetBrains.Annotations.dll' アセンブリへのバイナリ参照は生成されません。ただし、プロジェクトで「JETBRAINS_ANNO...
自動プロパティを使用する
自動実装されたプロパティ(自動プロパティとも呼ばれます)を使用すると、追加のロジックを持たない型プロパティをより簡単な方法で宣言できます。デフォルトでは、ReSharper は可能な場合は自動プロパティの使用を推奨していますが、この動作は構成可能です。デフォルトでは、ReSharper は自動プロパティに変換される可能性があるほとんどのプロパティをハイライトし、対応するクイックフィックスまたはスコープ内の修正を提案します。ReSharper にこれを提案させたくない場合は、それを検出するコードイ...
#region ブロックを追加および削除する
ReSharper は、コード内のブロックを迅速に追加、移動、削除できます。エディターでリージョンを管理する:エディター内で、現在の選択範囲をリージョンですばやく囲むことができます。ReSharper はおよびディレクティブを追加し、領域名を入力できる位置にキャレットを配置します。コード要素を移動する機能を使用して、リージョンをさまざまな方法で移動することもできます。ディレクティブとディレクティブを上下に移動して、領域に隣接する要素が含まれるようにしたり、要素が領域から外されるようにしたりでき...
正規表現の支援
ReSharper は、.NET の正規表現で作業するための豊富なツールセットを提供します。既存の式をすばやく分析し、エラーを見つけて修正できます。ReSharper は、新しい式を入力する際に、自動補完と検証を支援します。文字列リテラルの正規表現:デフォルトでは、ReSharper は、正規表現クラスのメソッドで、パラメーターの正規表現のみを処理します。ただし、正規表現を含む文字列は、文字列定数、フィールド、他のメソッドの引数など、さまざまな場所で定義できます。ReSharper で文字列を...
INotifyPropertyChanged のサポート
インターフェースは、.NET アプリケーションで、プロパティの値が変更されたときに通知を送信するために広く使用されています。ReSharper には、このインターフェースを実装するための一連の機能が用意されています。ReSharper は、以下のフレームワークのプロパティ変更通知を実装できます。MVVM ライト (WPF、Silverlight、Windows Phone、ユニバーサルアプリ)、Caliburn.Micro (WPF、Silverlight、Windows Phone、ユニバーサ...