C# のコードインスペクション
C# では、ReSharper 2024.2 は 2 種類のコードインスペクションを提供します。壊れた構文、未解決のシンボル、コンパイラーエラーなどのエラーを検出する 1148 個のインスペクション (いずれも構成または無効にすることはできませんインスペクション)、および 943 個の独自コードインスペクション (いずれも無効にしたり、重大度レベルを変更したりできます)。
これらのコードインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出するのに役立ち、さらに特定のスコープ内でコードの問題を見つけることもできます。
構成可能な C# インスペクションは、カテゴリ別にグループ化されて以下にリストされています。
コード通知 (2 インスペクション)
このカテゴリは、コードインスペクションをマイナーな重大度でグループ化します。
インスペクション | |
---|---|
| |
コードの一部を解析できません
|
一般的なプラクティスとコードの改善 (171 インスペクション)
このカテゴリは、主にコードの可読性に影響する中程度の重大度の問題を探し出すインスペクションをグループ化します。
インスペクション | |
---|---|
| |
ローカル関数の前に明示的な「return」または「Continue」を追加する
| |
階層のアノテーション複製
| |
自動プロパティは取得専用にすることができます (非公開アクセシビリティ)
| |
自動プロパティは取得専用にすることができます (private アクセス)
| |
基本メンバーには「params」パラメーターがありますが、オーバーライドにはありません
| |
| |
| |
| |
| |
| |
代わりに参照等価をチェックする
| |
代わりに参照等価をチェックする
| |
代わりに参照等価をチェックする
| |
代わりに参照等価をチェックする
| |
クラスを密閉することができます (non-inheritable) (非公開アクセシビリティ)
| |
クラスを密閉することができます (non-inheritable) (private アクセス)
| |
非コンテナー型の宣言を伴うコンテナーの null 許容属性の使用
| |
if do while を 'while' に変換
| |
| |
ローカル変数またはフィールドを定数に変換する (非公開アクセシビリティ)
| |
ローカル変数またはフィールドを定数に変換する (private アクセス)
| |
推測される null 可否宣言 (パラメーターが null でないと推定される)
| |
推測される null 可否宣言 (パラメーターは NULL 可能であると推定される)
| |
推測される null 可否宣言 (型メンバーは null ではないと推定されます)
| |
推測される null 可否宣言 (型メンバーは nullable と推定されます)
| |
| |
辞書検索は「GetValueOrDefault」で簡素化できます
| |
| |
| |
| |
| |
共通プロパティパターンの抽出
| |
フィールドは読み取り専用にすることができます (非公開アクセシビリティ)
| |
フィールドは読み取り専用にすることができます (private アクセス)
| |
| |
条件の反転
| |
| |
| |
| |
| |
| |
メンバーはプライベートにすることができます (非公開アクセシビリティ)
| |
メンバーはプライベートにすることができます (private アクセス)
| |
メンバーを保護することができます (非公開アクセシビリティ)
| |
メンバーを保護することができます (private アクセス)
| |
メンバーは静的にすることができます (共有) (非公開アクセシビリティ)
| |
メンバーは静的にすることができます (共有) (private アクセス)
| |
メンバーまたは型を内部にすることができます (友達)
| |
メソッドに非同期オーバーロードがあります
| |
メソッドにはキャンセルサポート付きの非同期オーバーロードがあります
| |
キャンセルをサポートするメソッド
| |
非公開または内部型またはメンバーの XML コメントがありません
| |
| |
ネストされた文字列補間はインライン化できます
| |
void 型または値型の宣言による NULL 可能性属性の使用
| |
他のコードから直接参照できない宣言で使用される NULL 可能性属性
| |
パラメーターは基本型で宣言できます
| |
コンストラクターのパラメーターは基本型で宣言できる
| |
パラメーターの型は IEnumerable <T> (非公開アクセシビリティ)
| |
パラメーターの型は IEnumerable <T> (private アクセス)
| |
プロパティは init のみにすることができます (非公開アクセシビリティ)
| |
プロパティは init のみにすることができます (private アクセス)
| |
「return」または「Continue」の後にローカル関数を置きます
| |
冗長 'は'
| |
コンストラクターの呼び出しを削除する
| |
冗長なステートメントの除去
| |
冗長なステートメントの除去
| |
ToList() を削除
| |
ToList() を削除
| |
「async」コードを「Task」-return に置き換えます
| |
FirstOrDefault($args$)に置き換えてください
| |
FirstOrDefault($args$)に置き換えてください
| |
FirstOrDefault($args$)に置き換えてください
| |
FirstOrDefault($args$)に置き換えてください
| |
LastOrDefault($args$)で置き換えます
| |
LastOrDefault($args$)で置き換えます
| |
LastOrDefault($args$)で置き換えます
| |
LastOrDefault($args$)で置き換えます
| |
OfType <T>() で置換
| |
OfType <T>() で置換
| |
OfType <T>() で置換
| |
OfType <T>() で置換します。Any()
| |
OfType<T>().Any() で置き換えます(OfType <T>()。Any(..)に置き換えてください)
| |
OfType <T>() で置き換えます。Count()
| |
OfType <T>() で置き換えます。Count()(OfType <T>() で置き換えます。Count(..))
| |
OfType <T>() で置き換えます。First()
| |
OfType<T>().First() で置き換える(OfType <T>()。First(..))
| |
OfType <T>() で置き換えます。FirstOrDefault()
| |
OfType<T>().FirstOrDefault() に置き換えてください(OfType <T>()。FirstOrDefault(..)に置き換えてください)
| |
OfType<T>().Last() と交換する
| |
OfType<T>().Last() で置き換えます(OfType <T>()。Last(..)に置き換えてください)
| |
OfType <T>() で置き換えます。LastOrDefault()
| |
OfType<T>().LastOrDefault() で置き換えます(OfType <T>()。LastOrDefault(..)に置き換えてください)
| |
OfType <T>() で置き換えます。LongCount()
| |
OfType <T>() で置換します。Single()
| |
OfType<T>().Single() で置き換えます(OfType <T>()。Single(..))
| |
OfType <T>() で置換します。SingleOrDefault()
| |
OfType <T>() で置き換えます。SingleOrDefault()(OfType <T>() で置き換えます。SingleOrDefault(..))
| |
OfType <T>() で置き換えます。Where()(OfType <T>()、Where(..))に置き換えます。
| |
簡単な代入で置き換える
| |
簡単な代入で置き換える
| |
| |
| |
Any(..)への単一呼び出しで置き換えます
| |
Count(..)への単一呼び出しで置き換えます
| |
First(..)への 1 回の呼び出しで置き換えます
| |
FirstOrDefault(..)への単一の呼び出しで置き換えます
| |
ラスト(..)への 1 回の呼び出しで置き換えます
| |
LastOrDefault(..)への単一呼び出しで置き換えます
| |
シングル(..)へのシングルコールで置き換えます
| |
SingleOrDefault(..)への単一の呼び出しで置き換えます
| |
SingleOrDefault($args$)に置き換えてください
| |
SingleOrDefault($args$)に置き換えてください
| |
SingleOrDefault($args$)に置き換えてください
| |
SingleOrDefault($args$)に置き換えてください
| |
戻り値の型は IEnumerable <T> (非公開アクセシビリティ)
| |
戻り値の型は IEnumerable <T> (private アクセス)
| |
| |
'IsInstanceOfType()' 呼び出しを簡素化する
| |
LINQ 式を簡略化する (「すべて」を使用)
| |
LINQ 式を簡略化する (「すべて」を使用)
| |
否定パターンを単純化する
| |
否定された関係パターンを単純化する
| |
| |
| |
| |
文字列リテラルはインライン化できます
| |
String.Compare は文化固有のものです(string.Compare(string、int、string、int)はカルチャ固有です)
| |
String.Compare は文化固有のものです(string.Compare(string、int、string、int、bool)はカルチャ固有です)
| |
String.Compare は文化固有のものです(string.Compare(string、int、string、int、bool)はカルチャ固有です)
| |
String.Compare はカルチャ固有です(string.Compare(string、string)はカルチャ固有です)
| |
String.Compare は文化固有のものです(string.Compare(string、string、bool)はカルチャ固有です)
| |
String.Compare は文化固有のものです(string.Compare(string、string、bool)はカルチャ固有です)
| |
| |
String.EndsWith はカルチャ固有です(string.EndsWith(string) はカルチャ固有)
| |
String.IndexOf はカルチャ固有です(string.IndexOf(string) はカルチャ固有)
| |
String.IndexOf はカルチャ固有です(string.IndexOf(string、int)はカルチャ固有)
| |
String.IndexOf はカルチャ固有です(string.IndexOf(string、int)はカルチャ固有)
| |
String.LastIndexOf はカルチャ固有です(string.LastIndexOf(string) はカルチャ固有)
| |
String.LastIndexOf はカルチャ固有です(string.LastIndexOf(string、int)はカルチャ固有)
| |
String.LastIndexOf はカルチャ固有です(string.LastIndexOf(string、int)はカルチャ固有)
| |
String.StartsWith は文化固有のものです(string.StartsWith(string) は文化固有のものです)
| |
構造体を読み取り専用にすることができます
| |
構造体に 'IEquatable' 実装がありません (非公開アクセシビリティ)
| |
構造体に 'IEquatable' 実装がありません (private アクセス)
| |
構造体メンバーを読み取り専用にすることができます
| |
デフォルトの等価メンバーを持つ構造体は比較に使用されます (非公開アクセシビリティ)
| |
デフォルトの等価メンバーを持つ構造体は比較に使用されます (private アクセス)
| |
try-catch と try-finally 文をマージすることができます
| |
タイプをファイルローカルにすることができます
| |
型パラメーターは、共変または反変として宣言することができます
| |
レコード内で疑わしい等価性を持つ型が使用されています (非公開アクセシビリティ)
| |
レコード内で疑わしい等価性を持つ型が使用されています (private アクセス)
| |
| |
'ArgumentNullException.ThrowIfNull' を使用します
| |
配列作成式を使用する
| |
配列作成式を使用する
| |
'Array.Empty <T>()' を使用します
| |
キャンセルトークンを使用
| |
コンパイラーがサポートする NULL 可能属性を使用する
| |
'EventArgs.Empty' を使用します
| |
インデックス付きプロパティを使用する
| |
| |
| |
Any() メソッドを使用する
| |
Any() メソッドを使用する
| |
Any() メソッドを使用する
| |
Any() メソッドを使用する
| |
| |
'Type.EmptyTypes' を使用します
|
コンパイラーの警告 (194 インスペクション)
このカテゴリのインスペクションは、コンパイルする前にコンパイラーの警告を検出します。
インスペクション | |
---|---|
| |
[InterpolatedStringHandlerArgument] は、ラムダパラメーターに適用された場合は効果がなく、呼び出しサイトでは無視されます。
| |
「ref readonly」パラメーターにはデフォルト値が指定されていますが、「ref readonly」は参照のみに使用してください。パラメーターを「in」として宣言することを検討する
| |
ローカル変数は参照によって返されますが、参照によって返すことができない値に初期化されます。
| |
変数のメンバーが参照によって返されますが、参照によって返すことができない値に初期化されます
| |
[DoesNotReturn] とマークされたメソッドは返されません。
| |
[NotNull] または [DisallowNull] でマークされたタイプには、可能な null 値を使用できません。
| |
以前の catch 節がすでにすべての例外をキャッチしています
| |
このコンテキストでの stackalloc 式の結果は、含まれているメソッドの外部に公開される場合があります。
| |
匿名メソッド、ラムダ式、クエリ式、イテレータから 'base' キーワードを使用してメンバーにアクセスすると、確認できないコードが返される
| |
アライメント値 'value' の大きさは 'magnitude limit' より大きく、フォーマットされた文字列が大きくなることがあります。
| |
| |
引数は、参照型の NULL 可能性の違いにより、パラメーターの出力として使用できません。
| |
引数は、参照型の NULL 可能性の違いにより、対応するパラメーターに使用できません。
| |
引数は「ref readonly」パラメーターに渡されるため、変数である必要があります。
| |
引数は「in」キーワードを使用して渡す必要があります。
| |
| |
| |
式を待たずに非同期関数
| |
| |
同期エントリポイントが見つかったため、非同期の「Main」メソッドはエントリポイントとして使用されません。
| |
非同期イテレーターには、「CancellationToken」型のパラメーターが 1 つ以上ありますが、「EnumeratorCancellation」属性でアノテーションが付けられているものはありません。
| |
「属性修飾子」は認識された属性の場所ではありません: このブロックのすべての属性は無視されます
| |
「属性修飾子」は、この宣言の有効な属性の場所ではありません: このブロックのすべての属性は無視されます
| |
| |
ビット単位 - または符号拡張オペランドで使用される演算子。
| |
「読み取り専用」メンバーから非読み取り専用メンバーを呼び出すと、'this' の暗黙的なコピーが作成されます
| |
null リテラルを null 不可の参照型に変換できません。
| |
| |
クラスは Object.Equals(Object o)をオーバーライドしますが、Object.GetHashCode() はオーバーライドしません。
| |
| |
コレクション式では予期しないヒープ割り当てが発生する可能性があります
| |
「..」スプレッドの使用により、コレクション式で予期しないヒープ割り当てが発生する可能性があります
| |
null 許容値型の null と比較すると、常に「false」が生成されます
| |
積分定数との比較は役に立ちません。定数がタイプ 'type' の範囲外です。
| |
メソッドグループを非デリゲート型 'object' に変換しています。
| |
NULL リテラルまたは可能性のある NULL 値を NULL 不可の型に変換しています。
| |
密封されたクラスで新しい保護されたメンバーを宣言することは、それを非公開として宣言することと同じです
| |
parameter に指定されたデフォルト値は、オプションの引数を許可しないコンテキストで使用されるメンバーに適用されるため、何の効果もありません
| |
| |
| |
| |
| |
フィールドが使用されることはありません
| |
フィルターの式は定数です。フィルターを削除することを検討してください
| |
指定された式は常に指定されたパターンと一致します
| |
| |
| |
'goto case' の値が暗黙的に必要な型に変換できない
| |
| |
インライン配列変換演算子は、宣言型の式からの変換には使用されません。
| |
インライン配列インデクサーは要素アクセス式には使用されません。
| |
インライン配列の「Slice」メソッドは要素アクセス式には使用されません。
| |
「インライン配列」言語機能は、要素フィールドが「ref」フィールドであるか、型引数として無効な型を持つインライン配列型ではサポートされていません。
| |
'Finalize' メソッドを導入すると、デストラクタの呼び出しを妨げる可能性があります。
| |
| |
| |
| |
| |
この属性ではメンバーを使用できません。
| |
関数を終了するとき、メンバーは条件付きで null 以外の値を持っている必要があります。
| |
メンバーは、終了するときに null 以外の値を持っている必要があります。
| |
| |
メソッドには、実装またはオーバーライドされたメンバーと一致させるための「[DoesNotReturn]」アノテーションがありません。
| |
公開されているタイプまたはメンバーの XML コメントが見つかりません
| |
| |
ネームスペースはこのプロジェクトのデフォルトネームスペースでなければなりません
| |
アクセスされていないフィールド
| |
アクセスされていないローカル変数
| |
null 不可能なメンバーは初期化されていません。
| |
| |
明示的なインターフェース指定子の参照型の Nullability は、その型によって実装されたインターフェースと一致しません。
| |
基本型によって実装されたインターフェースの参照型の Nullability は一致しません。
| |
| |
戻り型の参照型の NULL 可能性は、暗黙的に実装されているメンバーと一致しません。
| |
戻り型の参照型の NULL 許容度は、オーバーライドされたメンバーと一致しません。
| |
戻り型の参照型の null 可能性は、部分的なメソッド宣言と一致しません。
| |
戻り型の参照型の null 可能性がターゲットデリゲートと一致しません(おそらく null 可能性属性が原因です)。
| |
インターセプターメソッドの戻り値の型における参照型の null 許容値がインターセプト可能なメソッドと一致しません。
| |
| |
| |
type 内の参照型の null 許容度は、暗黙的に実装されているメンバーと一致しません。
| |
型の中の参照型の NULL 可能性は、オーバーライドされたメンバーと一致しません。
| |
パラメーターの型の参照型の null 可能性がターゲットデリゲートと一致しません(おそらく null 可能性属性が原因です)。
| |
パラメーターの型の中の参照型の許容値が実装されたメンバーと一致しません。
| |
パラメーターの型における参照型の許容値は、暗黙的に実装されているメンバーと一致しません。
| |
パラメーターの型における参照型の null 許容値がインターセプト可能なメソッドと一致しません
| |
パラメーターの型の中の参照型の許容値が、オーバーライドされたメンバーと一致しません。
| |
パラメーターの型の中の参照型の許容値が部分的なメソッド宣言と一致しません。
| |
戻り型の null 可能性が実装されたメンバーと一致しません(おそらく null 可能性属性のため)。
| |
戻り型の null 可能性は、暗黙的に実装されたメンバーと一致しません(おそらく null 可能性属性のため)。
| |
戻り型の null 可能性がオーバーライドされたメンバーと一致しません(おそらく null 可能性属性のため)。
| |
| |
型引数の Nullability は、制約の型と一致しません。
| |
型引数の Nullability は、「notnull」制約と一致しません。
| |
パラメーターの型の null 可能性が実装されたメンバーと一致しません(おそらく null 可能性属性のため)。
| |
パラメーターの型の null 可能性は、暗黙的に実装されたメンバーと一致しません(おそらく null 可能性属性のため)。
| |
パラメーターの型の null 可能性がオーバーライドされたメンバーと一致しません(おそらく null 可能性属性のため)。
| |
NULL 可能値タイプは NULL でもかまいません。
| |
オブジェクトまたはコレクションの初期化子は、null の可能性のあるメンバーを暗黙的に逆参照する
| |
廃止されたメンバーは廃止されていないメンバーをオーバーライドします
| |
古いメンバーは必須ではありません。
| |
演算子 '==' または演算子 '!=' 'Object.Equals(オブジェクト o)' および 'Object.GetHashCode()' がオーバーライドされていない
| |
| |
パラメーターに XML コメントに一致するパラメータータグがありません
| |
パラメーターにはラムダに params 修飾子がありますが、ターゲットのデリゲート型にはありません。
| |
パラメーターは外側の型の状態に取り込まれ、その値も基本コンストラクターに渡されます。値は基本クラスによってもキャプチャーされる可能性があります。
| |
パラメーターは囲んでいる型の状態に取り込まれ、その値はフィールド、プロパティ、イベントの初期化にも使用されます。
| |
関数を終了するとき、パラメーターは条件付きで null 以外の値を持っている必要があります。
| |
[NotNullIfNotNull] アノテーションに記載されているパラメーターは null 以外であるため、終了するときはパラメーターに null 以外の値を指定する必要があります。
| |
終了するときは、パラメーターに null 以外の値を指定する必要があります。
| |
パラメーターは、パラメーターリスト内の補間された文字列ハンドラーパラメーターの後に発生します。
| |
部分的なメソッド宣言は、型パラメーターに対して一貫性のない null 値を許可する
| |
| |
| |
| |
null 参照が返される可能性があります。
| |
| |
'using' または 'lock' ステートメントの引数であるローカルへの割り当てが正しくない可能性があります
| |
プライマリコンストラクターパラメーターは、基本型のメンバーによってシャドウされます。
| |
レコード定義された「等しい」が「GetHashCode」ではない
| |
パラメーターの参照種別修飾子が、非表示メンバー内の対応するパラメーターと一致しません。
| |
パラメーターの参照種類修飾子が、オーバーライドされたメンバーまたは実装されたメンバーの対応するパラメーターと一致しません。
| |
パラメーターの参照種別修飾子がターゲット内の対応するパラメーターと一致しません。
| |
揮発性フィールドへの参照は volatile として扱われません
| |
[NotNullIfNotNull] アノテーションに記載されているパラメーターが null 以外であるため、戻り値は null 以外である必要があります。
| |
インターセプタブルメソッドとインターセプターメソッドのシグネチャーが一致しません
| |
| |
構造体メンバーは参照によって 'this' または他のインスタンスメンバーを返します。
| |
| |
marshal-by-reference クラスフィールドのアドレスを取る
| |
NULL 可能参照型のアノテーションは、「#nullable」アノテーションコンテキスト内のコードでのみ使用する必要があります。
| |
null 許容参照型のアノテーションは、「#nullable」アノテーションコンテキスト内のコードでのみ使用する必要があります。自動生成コードには、ソースに明示的な '#nullable' ディレクティブが必要です。
| |
ref 条件演算子のブランチが、互換性のない宣言スコープを持つ変数を参照しています。
| |
パラメーターに適用された CallerArgumentExpressionAttribute は、自己参照であるため、効果がありません。
| |
CallerArgumentExpressionAttribute が無効なパラメーター名で適用されています。
| |
CallerArgumentExpressionAttribute は、オプションの引数を許可しないコンテキストで使用されるメンバーに適用されるため、効果がありません。
| |
CallerArgumentExpressionAttribute は効果がありません。CallerFilePathAttribute によってオーバーライドされます
| |
CallerArgumentExpressionAttribute は効果がありません。CallerLineNumberAttribute によってオーバーライドされます
| |
CallerArgumentExpressionAttribute は効果がありません。CallerMemberNameAttribute によってオーバーライドされます
| |
デフォルトのパラメーター値がターゲットのデリゲート型と一致しません。
| |
'EnumeratorCancellation' 属性は、'IAsyncEnumerable <>' を返す async-iterator メソッドの型 'CancellationToken' のパラメーターでのみ有効です。
| |
指定された式は、指定された定数と常に一致します。
| |
指定された式は、指定されたパターンと決して一致しません。
| |
| |
トップレベルのステートメントを含むコンパイルユニットが見つかったため、「Main」メソッドはエントリポイントとして使用されません。
| |
「in」パラメーターに対応する引数の「ref」修飾子は「in」と同等です。代わりに「in」を使用することを検討する
| |
「in」パラメーターに対応する引数の「ref」修飾子は「in」と同等です。代わりに「in」を使用することを検討する
| |
| |
値型の値が「null」と等しくなることはないため、式の結果は常に「true」または「false」になります。
| |
値型の値が「null」と等しくなることはないため、式の結果は常に「true」または「false」になります。
| |
パラメーターの「スコープ」修飾子がターゲットデリゲートと一致しません。
| |
パラメーターの 'scoped' 修飾子は、オーバーライドまたは実装されたメンバーと一致しません。
| |
switch 式はすべての可能な入力を処理しません(網羅的ではありません)。
| |
switch 式は、その入力タイプのすべての可能な値を処理するわけではありません(網羅的ではありません)。ただし、「when」句を含むパターンは、この値と正常に一致する可能性があります。
| |
switch 式は一部の null 入力を処理しません(網羅的ではありません)。
| |
switch 式は、一部の null 入力を処理しません(網羅的ではありません)。ただし、「when」句を含むパターンは、この値と正常に一致する可能性があります。
| |
switch 式は、名前のない列挙値を含む入力タイプの一部の値を処理しません(網羅的ではありません)。
| |
ターゲットタイプによって異なる名前または名前が指定されていないため、タプルエレメント名は無視されます。
| |
タプル要素名は、タプル == または ! = 演算子の反対側に別の名前または名前が指定されていないため無視されます。
| |
タイプ名には小文字の ASCII 文字のみが含まれています: そのような名前は言語用に予約される場合があります
| |
部分構造体の複数の宣言内のフィールド間の順序は定義されていません。順序を指定するには、すべてのインスタンスフィールドが同じ宣言内にある必要があります。
| |
これは、return ステートメントを介して現在のメソッドのみをエスケープできる値を参照代入する
| |
これは、ターゲットよりも広い値エスケープスコープを持つ値を ref-assign し、より狭いエスケープスコープを持つ値のターゲットを介した割り当てを可能にする
| |
これは、より狭いエスケープスコープを持つ変数に式を参照代入する
| |
これは参照によって local のメンバーを返しますが、ref local ではありません。
| |
これは参照によってパラメーターを返しますが、ref パラメーターではありません。
| |
これは参照によってパラメーターを返しますが、現在のメソッドにスコープが設定されています。
| |
これは、ref パラメーターを介して参照によってパラメーターを返します。ただし、return ステートメントでのみ安全に返すことができます。
| |
これは、ref または out パラメーターではないパラメーターのメンバーを参照によって返する
| |
これは、現在のメソッドにスコープが設定されている parameter のメンバーを参照によって返します。
| |
これは、ref パラメーターを介して parameter のメンバーを参照によって返します。ただし、return ステートメントでのみ安全に返すことができます。
| |
これは参照によってローカルを返しますが、参照ローカルではありません。
| |
これは、アドレスの取得、サイズの取得、マネージ型へのポインターの宣言を行います。
| |
スローされる値は null の場合があります。
| |
型はインターフェースリストにすでにリストされており、参照型の null 許容値が異なります。
| |
タイプは評価のみを目的としており、将来のアップデートで変更または削除される可能性があります。
| |
タイプは評価のみを目的としており、将来のアップデートで変更または削除される可能性があります。続行するには、この診断を抑制します。
| |
型パラメーターには、XML コメント内に一致する typeparam タグがありません。
| |
型パラメーターは、外部型からの型パラメーターと同じ名前を持ちます
| |
タイプとエイリアスには「record」という名前を付けないでください
| |
| |
割り当てられていないフィールド
| |
割り当てられていない読み取り専用フィールド
| |
| |
未使用のローカル変数
| |
このコンテキストで変数を使用すると、参照された変数が宣言スコープ外に公開される可能性があります。
| |
| |
| |
'動的' との互換性をテストするために 'is' を使用することは、'Object' との互換性をテストすることと本質的に同じであり、すべての non-null 値
| |
XML コメントに 'パラメーター' の 'param' タグがありますが、その名前のパラメーターはありません
| |
XML コメントに 'TypeParameter' の 'typeparam' タグがありますが、その名前の型パラメーターはありません
| |
XML コメントには、型パラメーターを参照する cref 属性があります
| |
|
制約違反 (11 インスペクション)
このカテゴリには、コードインスペクションが含まれ、ほとんどの場合、警告の重大度レベルがあり、ReSharper のコードアノテーションなどのシンボル属性に関連する違反やその他の同様の問題が検出されます。
インスペクション | |
---|---|
| |
BaseTypeRequired 属性はクラスとインターフェースのみをサポートする
| |
| |
| |
null 非許容または必須のメンバーがコンストラクターの終了時に初期化されていない
| |
null 可能でないエンティティへの「null」割り当ての可能性
| |
'ValueRange' / 'NonNegativeValue' 属性の違反の可能性
| |
| |
必要な基本タイプと別のタイプの競合
| |
'[BaseTypeRequired]' 属性で指定されたタイプが別のタイプと競合しています
| |
「CannotApplyEqualityOperatorAttribute」でマークされた型の値は、「Equals()」を使用して比較する必要があります。
|
エンティティフレームワーク (8 インスペクション)
このカテゴリは、エンティティフレームワークおよびその派生の型とメンバーの使用箇所を検証するコードインスペクションをグループ化します。
インスペクション | |
---|---|
データベース関数はデータベース以外のコンテキストで呼び出されてはなりません
| |
関数は SQL に変換できないため、データベースコンテキストで呼び出すことはできません
| |
| |
関連エンティティに対するデータベースへの複数のクエリの可能性 (N+1 問題)
| |
文字列の長さが無制限であることによって発生する可能性のあるパフォーマンスの問題
| |
クエリは関連エンティティの不完全なデータを返す可能性があります
| |
このプロパティによって定義された関係は、依存関係ループにコントリビュートする
| |
ナビゲーションプロパティを使用すると、不完全なデータが返される可能性があります
|
フォーマット (41 インスペクション)
このカテゴリのインスペクションは、コードフォーマットの問題を検出します。
インスペクション | |
---|---|
| |
| |
間違った空白行 (中括弧の近くのブランク行の数が正しくない)
| |
| |
| |
| |
| |
不適切なインデント (プリプロセッサーディレクティブの周囲)
| |
| |
| |
| |
| |
不適切なインデント (他の場所でインデント / アウトデントが欠落している)
| |
不適切なインデント (他の場所での冗長なインデント / アウトデント)
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
文法の問題 (4 インスペクション)
このカテゴリのインスペクションは、文字列リテラルとドキュメントコメントの文法上の問題を報告します。
インスペクション | |
---|---|
| |
| |
| |
|
言語使用の機会 (83 インスペクション)
このカテゴリには、コードインスペクションが含まれ、ほとんどの場合、より高度な言語構造を使用できる場合に通知する提案の重大度レベルが含まれます。これらのインスペクションは、古い言語バージョンの構文を検出し、より新しい言語バージョンの機能の使用を提案します。サポートされているほとんどの言語では、言語バージョンを自動的に検出するか、手動で設定できます。
インスペクション | |
---|---|
| |
クラスをインスタンス化できません
| |
| |
式の型チェックと次の null チェックをネゲートされたパターンマッチングに変換する
| |
式の型チェックと次の null チェックをパターンマッチングに変換する
| |
| |
| |
| |
| |
'await using' ステートメントまたは宣言に変換する
| |
| |
静的クラスに変換
| |
'using' 宣言に変換
| |
| |
否定された 'is' 式を否定パターンを持つ 'is' 式に変換する
| |
| |
| |
プロパティを自動プロパティに変換する (可能であれば)
| |
プライベート setter を使用してプロパティを自動プロパティに変換する
| |
静的メソッド呼び出しを拡張メソッド呼び出しに変換する
| |
Foreach ループは LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます
| |
| |
'if' ステートメントは '?:' 式として書き換えることができます
| |
'if' ステートメントは「??」と書き換えることができます。表現
| |
'if' ステートメントは '??=' 代入として書き直すことができます
| |
「if-return」ステートメントは「return」ステートメントに書き換えることができます
| |
| |
| |
オプションのパラメーターを導入する (非公開アクセシビリティ)
| |
オプションのパラメーターを導入する (private アクセス)
| |
| |
| |
ラムダ式 / 匿名メソッドは「静的」にすることができます
| |
ラムダ式 / 匿名メソッドは、割り当てを回避するために「静的」である必要があります
| |
ラムダ式 / 匿名メソッドには、含まれているコンテキストのキャプチャーが含まれていてはなりません
| |
逐語的な文字列を使用すると、リテラルの長さを短縮できます
| |
| |
'と' パターンをマージする
| |
| |
否定された null/ パターンチェックを複雑なパターンにマージします
| |
| |
| |
null/ パターン / 値のチェックを 'または' / 'および' パターンにマージします
| |
シーケンシャルチェックを単一の条件付きアクセスチェックにマージする
| |
既存の位置分解パターンに移動します
| |
変数宣言をループ条件内に移動します
| |
foreach ループの一部は LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます
| |
ループの本体の一部を LINQ 式に変換できます
| |
| |
冗長アクセサー本体
| |
自動プロパティを計算されたプロパティに置き換えます
| |
| |
追加のチェックを実行しないオブジェクトパターンを「var」パターンに置き換えます
| |
| |
「スライス」を範囲インデクサーに置き換えます
| |
'Substring' を範囲インデクサーに置き換えます
| |
'switch' ステートメントを 'switch' 式に置き換えます
| |
三項演算子を 'switch' 式に置き換えます
| |
「フィールド」キーワードに置き換えます
| |
プライマリコンストラクターパラメーターに置き換えます
| |
エイリアスを使用する
| |
| |
複合代入を使用する
| |
| |
分解を使用
| |
分解を使用して変数を交換します
| |
| |
終了式からインデックスを使用
| |
| |
'nameof' 式を使用して、文字列リテラルの一部で名前を参照します
| |
'nameof' 式を使用して型名を参照する
| |
DependencyProperty の登録時に 'nameof' 式を使用する
| |
可能であれば、オブジェクトまたはコレクション初期化子を使用する
| |
位置分解パターンを使用する
| |
生の文字列を使用する
| |
| |
型アノテーション構文を使用する
| |
| |
| |
'with' 式を使用して匿名オブジェクトをコピーします
| |
'with' 式を使用してレコードをコピーします
| |
'with' 式を使用して構造体をコピーします
| |
'with' 式を使用してタプルをコピーします
|
NUnit (30 インスペクション)
これらのインスペクションは、NUnit テストに関連するコードの問題を検出します。
インスペクション | |
---|---|
NUnit: 非同期テストメソッドは、Task または Task <T> を返す必要があります
| |
NUnit。値が重複しています。
| |
NUnit。パラメーター属性が無視されました。
| |
| |
| |
NUnit。予期される結果の型に互換性がないか、値が正しくありません。
| |
NUnit。範囲の境界が正しくありません。'to' は 'from' 以上である必要があります。
| |
NUnit。範囲ステップの符号が一致しません。
| |
NUnit。TestCase 属性に引数がありません。
| |
NUnit。テストメソッドの宣言に 'CancelAfter' 属性がありません。
| |
NUnit。非 void テストメソッドに期待される結果がありません。
| |
NUnit。属性に値が指定されていません。
| |
| |
NUnit。範囲「step」パラメーター値はゼロ以外である必要があります。
| |
NUnit。TestCase 属性に冗長な引数があります。
| |
NUnit。ExpectedResult の代わりに冗長な引数。
| |
| |
NUnit。指定された属性値によって生成されるテストが多すぎます。
| |
NUnit。指定された値はテストパラメーター型と互換性がありません。
| |
NUnit。テストケースの Result プロパティが ExpectedResult と重複しています。
| |
NUnit。テストケースの結果プロパティは廃止されました。
| |
NUnit。テストケースソースは、フィールド、プロパティ、メソッドである必要があります。
| |
NUnit。テストケースソースは非抽象であり、IEnumerable を実装する必要があります。
| |
NUnit。テストケースソースは静的である必要があります。
| |
NUnit。ステップ値では最大範囲値に到達できません。
| |
NUnit。テストメソッドパラメーターの値が提供されていません。
| |
NUnit。範囲内の値がテストパラメーターの型に適合しません。
| |
NUnit.AutoFixture. 引数の型に互換性がないか、引数の値が正しくありません。
| |
NUnit.AutoFixture. Test または TestFixture 属性がありません。
| |
NUnit.AutoFixture. InlineAutoData 属性に冗長な引数があります。
|
潜在的なコード品質問題 (201 インスペクション)
このカテゴリには、主にエラーまたは警告レベルで重大な問題(コードのにおい)を検出するインスペクションが含まれます。このカテゴリには、ローカライゼーションの支援を確実にするインスペクションも含まれます。
インスペクション | |
---|---|
| |
[MustDisposeResource] アノテーションは基本コンストラクターから継承されないため、明示的に配置する必要があります
| |
[ThreadStatic] はインスタンスフィールドでは機能しません
| |
抑制された null 許容警告は、根本的な問題を隠す可能性があります
| |
抽象または仮想(オーバーライド可能な)イベントが呼び出されることはありません
| |
| |
| |
| |
ビットマスクの値に応じて、式の結果は常に同じになります
| |
実際のシフト数はゼロに等しい
| |
テキスト引数のあいまいな記号
| |
階層内のアノテーションの競合
| |
| |
'foreach を待たずに ' 非同期イテレータ呼び出し
| |
自動プロパティアクセサーは決して使用されません (非公開アクセシビリティ)
| |
自動プロパティアクセサーは決して使用されません (private アクセス)
| |
| |
デリゲートタイプが「void」を返す場合は、「async」ラムダの使用を避けてください
| |
'void' 戻り型で 'async' メソッドを使用しないでください
| |
バッキングフィールドが割り当てられていますが、使用されていません
| |
バッキングフィールドが使用されていますが、割り当てられていません
| |
[Flags] 属性でマークされていない列挙型に対するビット演算
| |
暗黙的なデフォルトパラメーターを持つ基本メンバーを呼び出します
| |
'base.Equals(...)' への呼び出しは参照の等価です
| |
テキスト引数に静的シンボルにアクセスできない
| |
テキスト引数のシンボルにアクセスできません
| |
プロパティを解決できません
| |
リソースを解決できません
| |
リソース項目を解決できません
| |
| |
marshal-by-reference クラスのフィールド参照を取得すると、実行時例外が発生することがある
| |
キャプチャーされたプライマリコンストラクターパラメーターは変更可能です
| |
'volatile' フィールドへのキャプチャーされた参照は 'volatile' として扱われません
| |
意図せずに Char が整数として使用されている可能性があります
| |
クラスはインスタンス化されません (非公開アクセシビリティ)
| |
クラスはインスタンス化されません (private アクセス)
| |
コレクションの内容が照会されることはありません (非公開アクセシビリティ)
| |
コレクションの内容が照会されることはありません (private アクセス)
| |
| |
| |
ゼロ以外のオペランドを持つ定数シフト式の結果はゼロの値になります
| |
| |
'using' ステートメントによってすでにキャプチャーされた変数の破棄
| |
少なくとも 1 つの実行パスでのゼロによる除算
| |
SpinLock を読み取り専用フィールドに保存しないでください
| |
'using' 変数にはオブジェクト初期化子を使用しないでください
| |
'using' 変数にはオブジェクト初期化子を使用しないでください (オブジェクト初期化子式は、'using' 変数の初期化中に例外をスローする可能性があります)
| |
| |
| |
空の「with」式は冗長です
| |
明示的なチェックされていないコンテキストでの 'Enumerable.Sum' 呼び出し
| |
| |
| |
| |
| |
イベントが呼び出されなかった
| |
匿名の代理人によるイベント登録解除
| |
例外の再挑戦が意図された
| |
呼び出し元情報属性を持つパラメーターに渡される明示的な引数
| |
| |
フィールドは、インターフェースのデフォルトの実装でプロパティを非表示にします
| |
フォーマットは指定されていますが、補間された文字列式は IFormattable ではありません
| |
関数本体が複雑すぎて解析できません
| |
関数はすべての実行パスで再帰的です
| |
| |
'GC.SuppressFinalize' はデストラクタのない型に対して呼び出されます
| |
| |
整数分析によるヒューリスティックに到達不可能なスイッチアーム
| |
「Math.Clamp()」メソッドに渡される一貫性のない引数
| |
| |
| |
end からのインデックスは 0 より大きくなければなりません。'^1' を使用して最後の要素を参照する
| |
ServiceContract としてマークされたインターフェースは、少なくとも 1 つの OperationContract
| |
| |
| |
IQueryable が意図せずに IEnumerable として使用されている可能性があります
| |
反復子は返さない
| |
ローカル関数はメソッドを非表示にします
| |
| |
ローカル変数は主要なコンストラクターパラメーターを非表示にする
| |
| |
出力パラメーターの意味のない [HandlesResourceDisposal] アノテーション
| |
入力パラメーターに対する意味のない [MustDisposeResource] アノテーション
| |
| |
| |
メソッドは OperationContract としてマークされていますが、含まれる型は ServiceContract としてマークされていません
| |
オプションまたは 'params' パラメーターを持つメソッドは、オーバーロードによって隠されています
| |
オーバーライドされたメソッドのオプションのパラメーター値の不一致
| |
ライブラリコードでディスポーザブルな非同期の「.ConfigureAwait(false)」がありません
| |
ライブラリコードに「.ConfigureAwait(false)」がありません
| |
複数のシーケンシャル 'OrderBy' 呼び出し
| |
| |
アクセスされていないフィールド (private アクセス)
| |
アクセスされていない位置プロパティ (非公開アクセシビリティ)
| |
アクセスされていない位置プロパティ (private アクセス)
| |
実装クラスの非公開メンバーは、インターフェースのデフォルトの実装を非表示にします
| |
'GetHashCode()' で参照される非読み取り専用型メンバー
| |
Null 可能性が階層内のアノテーションと競合する
| |
Nullable 警告抑制演算子は、反転された「is」式と混同される可能性があります
| |
'Object.ReferenceEquals' は値型で呼び出されるため常に false です
| |
| |
演算子 'is' /'Type Of ... Is ...' を使用できます
| |
チェックされた演算子と一致しない演算子
| |
オーバーライドされた GetHashCode は、'Object.GetHashCode()' を呼び出する
| |
| |
パラメーターはプライマリコンストラクターパラメーターを非表示にする
| |
| |
インターフェースごとにメンバーにアクセスする際のあいまいさ
| |
| |
| |
Double-Check Locking パターンの実装が間違っている可能性があります。チェックされたフィールドへの複数の書き込みアクセスが可能です。
| |
Double-Check Locking パターンの実装が間違っている可能性があります。チェックされたフィールドへの読み取りアクセス。
| |
| |
可能な分数の損失
| |
'System.Type' 型の引数が間違っている可能性があります
| |
'GetType()' の呼び出しが誤っている可能性があります
| |
| |
オーバーフローの可能性
| |
チェックされたコンテキストでのオーバーフローの可能性
| |
チェックされていないコンテキストでのオーバーフローの可能性
| |
「System.ArgumentOutOfRangeException」の可能性があります。インデックスは負でない整数でなければなりません。
| |
「System.ArgumentOutOfRangeException」の可能性があります。開始インデックスは終了インデックス以下でなければなりません。
| |
可能性のある 'System.InvalidCastException'
| |
foreach ループで 'System.InvalidCastException' が発生する可能性があります
| |
可能性のある 'System.InvalidOperationException'
| |
'System.InvalidOperationException: コレクションが変更されました ' の可能性があります
| |
可能性のある 'System.NullReferenceException'
| |
'new' 式で作成された可能性のある未割り当てオブジェクト
| |
| |
おそらく不純な struct メソッドが読み取り専用変数で呼び出されます: 呼び出し前に常にコピーされる構造体値
| |
オプションのパラメーター値を定義するための誤解を招くおそれのある「DefaultValueAttribute」の使用
| |
インデクサ初期化子の前にコンマがない可能性があります
| |
おそらくセットでの意図しない線形探索
| |
フォーマット文字列テンプレートではなく、おそらく意図しない文字列補間
| |
文字列の比較が間違っている可能性があります: スパンは、同じメモリ位置を指している場合にのみ等しくなります。
| |
ラムダまたはローカル関数内の誤解を招く可能性のあるパラメーター名
| |
プライマリコンストラクターパラメーターのキャプチャーは許可されていません
| |
[ オプション ] 属性を持つ 'ref' または 'out' パラメーター
| |
'using' でキャプチャーされたオブジェクトによって生成されたタスクの返却
| |
'using' ステートメントによってキャプチャーされた変数の戻り値
| |
関数の戻り値の型は null にできません
| |
[MustUseReturnValue] アノテーション付きメソッドの戻り値は使用されていません
| |
[MustDisposeResource] アノテーションが付けられたメソッドの戻り値は破棄されません
| |
プロパティの戻り値は呼び出し先によって破棄される必要があります
| |
'GetEnumerator' メソッド呼び出しの戻り値は決して破棄されません
| |
イテレータの戻り値が使用されていない
| |
| |
戻り値は破棄される必要がありますが、メソッドまたは関数に [MustDisposeResource] のアノテーションが付いていません
| |
| |
左オペランドがゼロのシフト式がゼロに等しい
| |
類似の匿名タイプが近くに検出されました
| |
同様の表現の比較
| |
列挙型の一部の値は 'switch' 式内で処理されず、デフォルトアームの例外を介して処理されます
| |
列挙型の一部の値は、'switch' ステートメント内で処理されません
| |
列挙型の一部の値は 'switch' ステートメント内で処理されず、デフォルトセクションを介して処理されます
| |
| |
静的メンバー初期化子は、下の静的メンバーまたは他の部分を参照します。
| |
| |
| |
同期プリミティブに対する疑わしいロック
| |
ArgumentNullException の疑わしいパラメーター名
| |
このタイプの左オペランドの疑わしいシフト数
| |
| |
破棄のような名前を持つ変数の不審な使用
| |
不審な 'volatile' フィールドの使用箇所: 複合操作はアトミックではありません。代わりに「Interlocked」クラスを使用できます。
| |
| |
末尾再帰呼び出しはループで置き換えることができます
| |
「is」演算子の式は、指定された型ではありません
| |
| |
| |
| |
ソース式は与えられたパターンと決して一致しません
| |
| |
キャストを試して、null が型チェックに置き換えられるかどうかを確認してください
| |
| |
型パターンとキャストをマージすることができます
| |
| |
割り当てられていないフィールド (private アクセス)
| |
割り当てられていない読み取り専用フィールド
| |
未知の Razor レイアウト
| |
不明な Razor セクション
| |
<inheritdoc/> の使用が無効です
| |
基本レベルのドキュメントを継承するには、ルートレベルで <inheritdoc/> を使用します
| |
| |
| |
| |
null 以外の値で成功する型チェックの代わりに null チェックを使用する
| |
null 以外の値で成功するタイプチェックの代わりに、null チェックパターンを使用する
| |
属性の代わりに null 許容のアノテーションを使用する
| |
無駄な算術演算
| |
ループ内で stackalloc を使用する
| |
非変数修飾子式のプロパティに割り当てられた値が失われる可能性があります
| |
| |
変数は null 不可として宣言できます
| |
ローカル関数内の変数は外部スコープから変数を隠します
| |
| |
「void」メソッドには [MustDisposeResource] 属性のアノテーションが付けられます
| |
「void」メソッドには [MustUseReturnValue] 属性のアノテーションが付けられます
| |
'void' メソッドには [Pure] 属性のアノテーションが付けられます
| |
オブジェクト初期化子の代わりに「with」式が使用されます
| |
'with' 式は、アクセス可能なすべてのインスタンスメンバーを変更します
|
コードの冗長性 (96 インスペクション)
このカテゴリのコードインスペクションは、コードの可読性とスタイルに影響を与える冗長性とデッドコードを探し、安全に削除できます。一部のコードの冗長性は自動的に修正できず、それらのクイックフィックスはインタラクティブモードで実行され、ユーザー入力が必要です。ただし、冗長性の大部分は、スコープ内の修正またはコードのクリーンアップを使用して、ユーザーの操作なしで修正できます。
インスペクション | |
---|---|
'??' 条件が null または null でないことがわかっている
| |
'??' null 許容参照型のアノテーションによると、条件が null になることはありません
| |
[NotNull] または [CanBeNull] 属性は、null 許容参照型からの同じアノテーションがすでにある型に適用されます
| |
匿名メソッド署名は必要ありません
| |
配列の作成は、配列の初期化子で置き換えることができます
| |
| |
割り当て結果は完全に破棄されます
| |
積分定数との比較は役に立たない
| |
条件付きアクセス修飾子の式は null または null ではないことがわかっています
| |
null 許容参照型のアノテーションによると、条件付きアクセス修飾子の式は null ではありません
| |
項目を辞書に追加する前の「ContainsKey」呼び出しは冗長です
| |
| |
| |
空の領域
| |
| |
| |
| |
null 許容型の参照型に応じて、式は常に「true」または「false」になります。
| |
| |
即時の代理人呼び出し
| |
Math.Abs() 引数は常に負ではありません
| |
Math.Sign() メソッドは常に同じ結果を返します
| |
| |
パターンは常に「true」または常に「false」です
| |
| |
生の文字列を簡略化できる
| |
冗長な [AttributeUsage] 属性のプロパティの割り当て
| |
| |
| |
| |
| |
冗長算術オーバーフローチェックコンテキスト
| |
| |
冗長な 'ベース' 修飾子
| |
冗長ブール比較
| |
コレクションイニシャライザーの冗長波括弧
| |
| |
デフォルトセクションの前の冗長 'case' ラベル
| |
| |
| |
レコード宣言の冗長な「クラス」キーワード
| |
割り当て前の冗長状態チェック
| |
冗長な条件付き三項演算子の使用箇所
| |
「ConfigureAwait」による冗長コンテキストのキャプチャー
| |
| |
冗長破棄指定
| |
| |
| |
冗長な空の finally ブロック
| |
冗長な空のオブジェクトまたはコレクションの初期化子
| |
| |
| |
重複した明示的な NULL 可能型の作成
| |
冗長な明示的な位置プロパティ宣言
| |
| |
冗長明示的タプルコンポーネント名
| |
| |
| |
| |
冗長な 'IEnumerable.Cast<T>' または 'IEnumerable.OfType<T>' 呼び出し
| |
| |
| |
| |
null 不可の基本型によって制約される型パラメーターに対する冗長な「notnull」制約
| |
別の null 不可の基本型によって制約された型パラメーターの基本型制約の冗長 null 可能アノテーション
| |
null にできない型の種類を持つ型パラメーターの基本型制約での null にできる冗長なアノテーション
| |
「クラス? 」での null 可能な冗長アノテーション null 不可の基本型によって制約される型パラメーターの制約
| |
冗長な null 許容属性
| |
| |
| |
| |
冗長な 'object.ToString()' は値型を呼び出す
| |
| |
冗長な 'orderby' 句 'ascending' キーワード
| |
冗長プロパティパターン句
| |
冗長範囲バウンド
| |
冗長な「読み取り専用」修飾子
| |
冗長な「スコープ」パラメーター修飾子
| |
型または名前空間宣言後の冗長セミコロン
| |
| |
| |
冗長な 'string.ToCharArray()' 呼び出し
| |
| |
パターン内の冗長タイプチェック
| |
| |
| |
冗長な接頭辞
| |
| |
冗長な「仮想」修飾子
| |
冗長な「WithCancel()」呼び出し
| |
冗長なパターンマッチング括弧を削除します
| |
常に一致するサブパターンは冗長です
| |
'真' は 'for' - 文の条件として冗長です
| |
nullable 型の型チェックが基本型チェックと等しいかどうか
| |
安全でないコンテキスト宣言は冗長です
| |
未使用の null 許容ディレクティブ
|
シンボル宣言の冗長性 (49 インスペクション)
このカテゴリにはコードインスペクションが含まれ、ほとんどが重大度レベルが警告であり、空の未使用のシンボル宣言を検出します。
インスペクション | |
---|---|
継承されない仮想(オーバーライド可能な)メンバーを持つクラス (非公開アクセシビリティ)
| |
継承されない仮想(オーバーライド可能な)メンバーを持つクラス (private アクセス)
| |
タプルの成分は決して使用されない
| |
「DefaultParameterValueAttribute」は「OptionalAttribute」と組み合わせて使用する必要があります
| |
| |
| |
| |
エンティティはその名前を取得するためにのみ使用されます (非公開アクセシビリティ)
| |
エンティティはその名前を取得するためにのみ使用されます (private アクセス)
| |
| |
ローカル関数は使用されません
| |
ローカル関数の戻り値は使用されません
| |
メソッドの戻り値は使用されません (非公開アクセシビリティ)
| |
メソッドの戻り値は使用されません (private アクセス)
| |
| |
アクセスされないローカル変数は、「out」パラメーター値を破棄するためにのみ使用されます。
| |
アクセスされていないプライマリコンストラクターパラメーター
| |
パラメーターは前提条件チェックにのみ使用されます (非公開アクセシビリティ)
| |
パラメーターは前提条件チェックにのみ使用されます (private アクセス)
| |
パラメーター出力値は常に破棄されます (非公開アクセシビリティ)
| |
パラメーター出力値は常に破棄されます (private アクセス)
| |
'params' 修飾子はオーバーライド時に常に無視されます
| |
冗長ベースコンストラクター呼び出し
| |
| |
| |
| |
冗長メソッドオーバーロード (非公開アクセシビリティ)
| |
冗長メソッドオーバーロード (private アクセス)
| |
| |
| |
| |
| |
| |
型メンバーは基本型でアクセスされません (非公開アクセシビリティ)
| |
型メンバーは基本型でアクセスされません (private アクセス)
| |
| |
| |
型メンバーは上書きでのみ使用されます (非公開アクセシビリティ)
| |
型メンバーは上書きでのみ使用されます (private アクセス)
| |
| |
未使用のラベル
| |
| |
| |
| |
| |
未使用の位置パラメーター
| |
未使用の型パラメーター
| |
仮想(オーバーライド可能な)メンバーはオーバーライドされません (非公開アクセシビリティ)
| |
仮想(オーバーライド可能な)メンバーはオーバーライドされません (private アクセス)
|
セキュリティ (1 インスペクション)
このカテゴリのインスペクションは、チェックマーク(英語)に従って脆弱性を持つ NuGet パッケージを報告します。
インスペクション | |
---|---|
|
スペルの問題 (3 インスペクション)
これらのインスペクションは、さまざまな状況でタイプミスを検出します。
インスペクション | |
---|---|
| |
| |
|
構文スタイル (46 インスペクション)
このカテゴリのインスペクションは、コード構文スタイルの違反を検出します。ほとんどのコードインスペクションとは対照的に、これらのインスペクションは、ReSharper オプション Alt+R, O の ページで構成された対応するコードスタイルルールに応じて、同じコード構造をコードの問題として検出するかしないかを選択できます。また、コードクリーンアップを使用して、これらのインスペクションが検出した問題を修正することもできます。
インスペクション | |
---|---|
non-obvious の優先順位を避けるために括弧を追加する
| |
| |
| |
| |
| |
| |
| |
代入式をブロックに配置する
| |
| |
built-in 型参照を CLR 型名またはキーワードに置き換える
| |
組込み型参照を CLR 型名または静的メンバーアクセス式のキーワードで置き換える
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
推奨するボディスタイルを使用する (優先ボディスタイルのコンストラクターまたはデストラクタに変換する)
| |
推奨するボディスタイルを使用する (推奨するボディスタイルでローカル関数に変換する)
| |
推奨するボディスタイルを使用する (推奨するボディスタイルを持つメソッドまたは演算子に変換する)
| |
推奨するボディスタイルを使用する (優先ボディスタイルのプロパティ、インデクサー、イベントに変換する)
| |
推奨するブレーススタイルを使用 ('do-while' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('fixed' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('for' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('foreach' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('if' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('lock' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('using' ステートメントに中括弧を強制する)
| |
推奨するブレーススタイルを使用 ('while' ステートメントに中括弧を強制する)
| |
| |
| |
| |
複数行リストの新しい行の前のコンマの末尾に優先スタイルを使用する
| |
最後の要素の後に改行がない場合は、末尾のコンマに優先スタイルを使用する
| |
タイプが明らかな場合は、デフォルト値式の優先スタイルを使用する
| |
タイプが明確でない場合は、デフォルト値式の優先スタイルを使用する
| |
作成されたタイプが明らかな場合は、「新しい」式の優先スタイルを使用する
| |
作成されたタイプが明確でない場合は、「新しい」式の優先スタイルを使用する
| |
| |
推奨 'var' スタイルを使用する (ビルトインタイプの場合)
| |
| |
推奨 'var' スタイルを使用する (型がシンプルなとき)
|
Unreal ビルドシステム (2 インスペクション)
このカテゴリのインスペクションは、Unreal Engine(英語) プロジェクトに固有のものです。
インスペクション | |
---|---|
プロジェクトファイルにプラグインの依存関係がありません
| |
この名前のモジュールは存在しません
|
Xunit (1 インスペクション)
これらのインスペクションは xUnit.Net テストに関連するコードの問題を検出します。
インスペクション | |
---|---|
|
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コードインスペクション
ReSharper は、サポートされているすべての言語で 2500 を超えるコードインスペクションを提供します。これらのインスペクションは、開いているすべてのファイルの設計時にコードの問題を検出してハイライトするために適用されます。また、特定の範囲内のすべてのコードの問題を検出するために適用されます。インスペクション ReSharper が提供するコードの種類を調べるには、異なる言語の ReSharper コードインスペクションの全リストをご覧ください。コードインスペクションは、以下のグループに分...
設計時にコードの問題を分析する
ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに...
特定の範囲でコードの問題を見つける
設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果を共有することもできます。開始コードインスペクション:ソリューション、プロジェクト、カスタムスコープのコードをインスペクションするソリューションワイドのインスペクションの結果(たとえば、未使用のパブ...
コード検査: 名前空間がファイルの場所に対応していません
デフォルトでは、ReSharper は、各クラスが表示される名前空間がプロジェクト内の場所と一致するとみなします。プロジェクトの「ルート」名前空間は、プロジェクトのプロパティで定義されています。上記の結果、プロジェクトレベルのすべてのコード要素が名前空間に現れることが予想され、それ以外の場合は警告が発行されます。フォルダーの導入により、名前空間はより深くなります。以下の例では、という名前のフォルダーは、名前空間に表示されるために、その中に含まれるすべてのアイテムを必要とします。ただし、追加の名前...
フォーマットルールを適用する
編集および貼り付けられたコードの自動フォーマット:エディターでコードを入力すると、セミコロンを入力するとすぐに ReSharper によって式が再フォーマットされ、閉じ括弧を入力するとすぐにコードブロックが再フォーマットされます必要に応じて、ReSharper オプション Alt+R, O のページでこれらの種類の自動フォーマットを無効にすることができます。ReSharper では、コードを貼り付けるときにフォーマットルールを自動的に適用することもできます。デフォルトでは、貼り付けられたコードは完...