C# のコードインスペクション
C# では、ReSharper 2026.1 は 2 種類のコードインスペクションを提供します。1253 エラーを検出するインスペクション (構文の破損、未解決シンボル、コンパイラ エラーなど。これらのインスペクションは設定や無効化はできません)と 1076 独自のコードインスペクション (これらは任意で 無効化や 重要度レベルの変更が可能です)。
これらの コードインスペクションは、すべての開いているファイルの 設計時にコードの問題を検出するのに役立ち、さらに 特定のスコープでコードの問題を見つけることもできます。
構成可能な C# インスペクションは、 カテゴリ別にグループ化されて以下にリストされています。
コード通知 (3 インスペクション)
このカテゴリは、重要度レベルが軽微なコードインスペクションをまとめています。
インスペクション | |
|---|---|
C# 14 のスパンパラメーターによるオーバーロード解決における重大な変更 | |
メソッドの呼び出しをスキップする | |
コードの一部を解析できません |
一般的なプラクティスとコードの改善 (172 インスペクション)
このカテゴリには、主にコードの可読性に影響する中程度の重要度の問題を検出するインスペクションがまとめられています。
インスペクション | |
|---|---|
派生型を介した型の静的メンバーへのアクセス | |
'Stream.Read()' で読み取られた実際のバイト数は無視されます | |
ローカル関数の前に明示的な「return」または「continue」を追加してください | |
階層内でのアノテーションの重複 | |
自動プロパティは取得専用 (非公開アクセシビリティ) にすることができます | |
自動プロパティは取得専用 (private アクセス) にすることができます | |
基底メンバーには「params」パラメーターがありますが、オーバーライド側にはありません | |
「Add」の前の「Contains」は簡略化できます | |
キャスト式は明示的な型引数に置き換えることができます | |
キャスト式は明示的な変数型に置き換えることができます | |
キャスト式はラムダ戻り値の型に置き換えることができます | |
キャスト式は簡略化された型引数に置き換えることができます | |
ロックフィールドの型を 'System.Threading.Lock' に変更する | |
参照の等価性をチェックしてください | |
参照の等価性をチェックしてください | |
参照の等価性をチェックしてください | |
参照の等価性をチェックしてください | |
クラスは sealed (継承不可) (非公開アクセシビリティ) にできます | |
クラスは sealed (継承不可) (private アクセス) にできます | |
紛らわしい本文風ステートメント | |
非コンテナ型の宣言でコンテナ null 許容性属性を使用 | |
「if do while」を「while」に変換する | |
「if」を「||」に変換する | |
ローカル変数またはフィールドを定数に変換する (非公開アクセシビリティ) | |
ローカル変数またはフィールドを定数に変換する (private アクセス) | |
宣言の null 許容性が推論されました (パラメーターが null ではないと推定されます) | |
宣言の null 許容性が推論されました (パラメーターが null 許容と推定されます) | |
宣言の null 許容性が推論されました (型メンバーが null ではないと推定されます) | |
宣言の null 許容性が推論されました (型メンバーが null 許容と推定されます) | |
辞書の項目削除は「Remove」1回で簡素化できます | |
辞書の検索は「GetValueOrDefault」で簡素化できます | |
辞書の検索は「TryAdd」で簡素化できます | |
辞書の検索は「TryGetValue」で簡素化できます | |
空のステートメントは冗長なものです | |
共通のプロパティパターンを抽出する | |
フィールドは読み取り専用 (非公開アクセシビリティ) にすることができます | |
フィールドは読み取り専用 (private アクセス) にすることができます | |
取得専用の自動プロパティには値が割り当てられていません | |
条件を反転する | |
反復変数はより具体的な型で宣言できます | |
ローカル変数の宣言と代入をまとめる | |
ローカル関数は静的にすることができます | |
ローカル変数の宣言のスコープが広すぎます | |
抽象クラスのコンストラクターを protected にしてください | |
メンバーは private (非公開アクセシビリティ) にすることができます | |
メンバーは private (private アクセス) にすることができます | |
メンバーは protected (非公開アクセシビリティ) にすることができます | |
メンバーは protected (private アクセス) にすることができます | |
メンバーは静的(共有)(非公開アクセシビリティ)にすることができます | |
メンバーは静的(共有)(private アクセシビリティ)にすることができます | |
メンバーまたは型は internal (friend) にすることができます | |
メソッドには async オーバーロードがあります | |
メソッドにはキャンセル対応の async オーバーロードがあります | |
メソッドはキャンセルに対応しています | |
private または internal 型やメンバーの XML コメントがありません | |
複数の null 許容性属性の使用 | |
入れ子の文字列補間はインライン化できます | |
void 型または値型の宣言に null 許容性属性を使用 | |
他のコードから直接参照できない宣言で null 許容性属性が使用されています | |
パラメーターは基本型で宣言できます | |
コンストラクターのパラメーターは基本型で宣言できます | |
パラメーターの型は IEnumerable<T> (非公開アクセシビリティ) にできます | |
パラメーターの型は IEnumerable<T> (private アクセス) にできます | |
「default」や「new()」より具体的な値を使うことを推奨します | |
プロパティは init のみにすることができます (非公開アクセシビリティ) | |
プロパティは init のみに設定できます(private アクセス) | |
「return」または「continue」の後にローカル関数を配置してください | |
冗長な 'is' | |
コンストラクターの呼び出しを削除する | |
冗長なステートメントを削除 | |
冗長なステートメントを削除 | |
ToList() を削除 | |
ToList() を削除 | |
「async」コードを「Task」リターンに置き換えてください | |
FirstOrDefault($args$)に置き換え | |
FirstOrDefault($args$)に置き換え | |
FirstOrDefault($args$)に置き換え | |
FirstOrDefault($args$)に置き換え | |
LastOrDefault($args$)に置き換え | |
LastOrDefault($args$)に置き換え | |
LastOrDefault($args$)に置き換え | |
LastOrDefault($args$)に置き換え | |
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(..) への単一呼び出しで置き換えてください | |
FirstOrDefault(..) への単一呼び出しで置き換えてください | |
Last(..) への単一呼び出しで置き換えてください | |
LastOrDefault(..) への単一呼び出しで置き換えてください | |
Single(..) への単一呼び出しで置き換えてください | |
SingleOrDefault(..) への単一呼び出しで置き換えてください | |
SingleOrDefault($args$)に置き換え | |
SingleOrDefault($args$)に置き換え | |
SingleOrDefault($args$)に置き換え | |
SingleOrDefault($args$)に置き換え | |
戻り値の型は IEnumerable<T> にできます(非 private アクセス) | |
戻り値の型は IEnumerable<T> にできます(private アクセス) | |
条件付き三項式を簡略化 | |
'IsInstanceOfType()' 呼び出しを簡素化 | |
LINQ 式を簡素化(「All」を使用) | |
LINQ 式を簡素化(「Any」を使用) | |
否定パターンを簡略化 | |
否定された関係パターンを簡略化 | |
否定の等価式を簡略化 | |
文字列比較を明示的に指定 | |
文字列カルチャを明示的に指定 | |
文字列リテラルはインライン化できます | |
String.Compare はカルチャ固有のものです(string.Compare(文字列、int、文字列、int) はカルチャ固有のものです) | |
String.Compare はカルチャ固有のものです(string.Compare(文字列、int、文字列、int、ブール) はカルチャ固有のものです) | |
String.Compare はカルチャ固有のものです(string.Compare(文字列、int、文字列、int、ブール) はカルチャ固有のものです) | |
String.Compare はカルチャ固有のものです(string.Compare(文字列、文字列) はカルチャ固有のものです) | |
String.Compare はカルチャ固有のものです(string.Compare(文字列、文字列、ブール) はカルチャ固有のものです) | |
String.Compare はカルチャ固有のものです(string.Compare(文字列、文字列、ブール) はカルチャ固有のものです) | |
String.CompareTo はカルチャ固有のものです | |
String.EndsWith はカルチャ固有のものです(string.EndsWith(文字列) はカルチャ固有のものです) | |
String.IndexOf はカルチャ固有のものです(string.IndexOf(文字列) はカルチャ固有のものです) | |
String.IndexOf はカルチャ固有のものです(string.IndexOf(文字列、int) はカルチャ固有のものです) | |
String.IndexOf はカルチャ固有のものです(string.IndexOf(文字列、int) はカルチャ固有のものです) | |
String.LastIndexOf はカルチャ固有のものです(string.LastIndexOf(文字列) はカルチャ固有のものです) | |
String.LastIndexOf はカルチャ固有のものです(string.LastIndexOf(文字列、int) はカルチャ固有のものです) | |
String.LastIndexOf はカルチャ固有のものです(string.LastIndexOf(文字列、int) はカルチャ固有のものです) | |
String.StartsWith はカルチャ固有のものです(string.StartsWith(文字列) はカルチャ固有のものです) | |
構造体を読み取り専用にすることができます | |
構造体に 'IEquatable' 実装がありません(非公開アクセシビリティ) | |
構造体に 'IEquatable' 実装がありません(private アクセス) | |
構造体メンバーを読み取り専用にすることができます | |
デフォルトの等値メンバーを持つ構造体は比較に使用されます(非公開アクセシビリティ) | |
デフォルトの等値メンバーを持つ構造体は比較に使用されます(private アクセス) | |
try-catch と try-finally ステートメントはマージできます | |
型をファイルローカルにすることができます | |
型パラメーターは共変または反変として宣言することができます | |
レコード内で疑わしい等値を持つ型が使用されています(非公開アクセシビリティ) | |
レコード内で疑わしい等値を持つ型が使用されています(private アクセス) | |
デフォルト構造体等値の使用 | |
'ArgumentException.ThrowIfNullOrEmpty/ThrowIfNullOrWhiteSpace' を使用する | |
'ArgumentNullException.ThrowIfNull' を使用する | |
配列作成式を使用する | |
配列作成式を使用する | |
'Array.Empty<T>()' を使用してください | |
キャンセルトークンを使用 | |
コンパイラがサポートする null 可能属性を使用してください | |
'EventArgs.Empty' を使用する | |
インデックス付きプロパティを使用する | |
'is' 演算子を使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
'String.IsNullOrEmpty' を使用してください | |
'Type.EmptyTypes' を使用する |
コンパイラーの警告 (211 インスペクション)
このカテゴリのインスペクションは、コンパイル前にコンパイラー警告を検出します。
インスペクション | |
|---|---|
'#warning' ディレクティブ | |
[InterpolatedStringHandlerArgument] はラムダパラメーターに適用しても効果がなく、呼び出しサイトで無視されます。 | |
「ref readonly」パラメーターにはデフォルト値が指定されていますが、「ref readonly」は参照のみに使用してください。 パラメーターを「in」として宣言することを検討してください。 | |
ローカル変数は参照で返されますが、参照で返すことができない値で初期化されています。 | |
変数のメンバーは参照で返されますが、参照で返すことができない値で初期化されています | |
[DoesNotReturn] でマークされているメソッドは戻り値を返してはいけません。 | |
[NotNull] または [DisallowNull] でマークされた型には、null となる可能性のある値は使用できません。 | |
前の catch 節がすでにすべての例外をキャッチしています | |
このコンテキストでの stackalloc 式の結果は、含まれているメソッドの外で公開される可能性があります。 | |
ログメッセージ中のテンプレートにログメソッド定義に一致するパラメーターがありません | |
'System.Threading.Lock' 型の値を他の型へ変換すると、'lock' ステートメントで意図しないモニターベースのロックが発生する可能性があります。 | |
匿名メソッド、ラムダ式、クエリ式、イテレーターから 'base' キーワードでメンバーへアクセスすると、検証不能なコードとなります | |
位置合わせ値 'value' の大きさが 'magnitude limit' より大きいため、大きなフォーマット済み文字列になることがあります。 | |
XML コメントのあいまいな参照 | |
引数は参照型の null 許容性の違いにより、パラメーターの出力としては使えません。 | |
引数は参照型の null 許容性の違いにより、対応するパラメーターとしては使えません。 | |
引数は「ref readonly」パラメーターに渡されるため、変数である必要があります。 | |
引数は「in」キーワードで渡す必要があります。 | |
条件式内の代入 | |
同じ変数への代入 | |
await 式なしの Async 関数 | |
await 式なしの Async メソッド呼び出し | |
同期エントリポイントが見つかったため、非同期の 'Main' メソッドはエントリポイントとしては使用されません。 | |
Async イテレーターに 'CancellationToken' 型パラメーターが存在しますが、どれも 'EnumeratorCancellation' 属性で注釈されていません。 | |
'attribute modifier' は有効な属性場所として認識されません。 このブロック内のすべての属性は無視されます | |
'attribute modifier' はこの宣言で有効な属性場所ではありません。 このブロック内のすべての属性は無視されます | |
コメントファイル内の不正な形式の XML | |
ビット演算 or 演算子が符号拡張オペランドに使用されています。 | |
'readonly' メンバーから非 'readonly' メンバーを呼び出すと 'this' の暗黙的なコピーが作成されます | |
null リテラルを null 非許容参照型に変換することはできません。 | |
XML コメントで参照を解決できません | |
クラスは Object.Equals(オブジェクト o) をオーバーライドしていますが、Object.GetHashCode() はオーバーライドしていません。 | |
コードに到達できません | |
コレクション式では予期しないヒープ割り当てが発生する可能性があります | |
「..」スプレッドの使用により、コレクション式で予期しないヒープ割り当てが発生する可能性があります | |
null 許容値型の null と比較すると、常に「false」が生成されます | |
整数定数への比較は無意味です。定数が型 'type' の範囲外です。 | |
メソッドグループを非デリゲート型 'object' に変換しています。 | |
null リテラルまたは null の可能性がある値を null 許容でない型に変換しています。 | |
sealed クラスで新しい protected メンバーを宣言することは、private として宣言するのと同じです | |
パラメーターに指定したデフォルト値はオプション引数が許可されないコンテキストで使われるメンバーに適用されるため効果がありません | |
null の可能性がある参照の逆参照です。 | |
XML コメント内に重複する param タグがあります。 | |
XML コメント内に重複する typeparam タグがあります。 | |
空の switch ブロックです。 | |
フィールドは使用されていません。 | |
フィルター式が定数です。フィルターの削除を検討してください。 | |
与えられた式は常に指定したパターンと一致します。 | |
与えられた式は常に指定された型です。 | |
与えられた式は決して指定された型ではありません。 | |
'goto case' の値は要求された型に暗黙的に変換できません。 | |
言語バージョンのプレビューでは「field」キーワードはプロパティの合成バッキングフィールドにバインドされます。 | |
XML コメントのシグネチャーが正しくありません。 | |
インライン配列変換演算子は宣言型の式からの変換には使われません。 | |
インライン配列インデクサーは要素アクセス式には使われません。 | |
インライン配列の「Slice」メソッドは要素アクセス式に使用されません。 | |
「インライン配列」言語機能は、要素フィールドが「ref」フィールドか、型引数として無効な型のインライン配列型ではサポートされていません。 | |
「Finalize」メソッドを導入すると、デストラクター呼び出しに影響を与える可能性があります。 | |
XML コメント内の無効な XML です。 | |
XML の include 要素が無効です。 | |
キーワード「new」は冗長なものです | |
キーワード「new」は必須です。 | |
この属性ではメンバーを使用できません。 | |
関数の終了時にメンバーが条件付きで null 以外の値を持っている必要があります。 | |
メンバーは終了時に null 以外の値を持っている必要があります。 | |
メンバーは古いメンバーをオーバーライドしています。 | |
実装もしくはオーバーライドしたメンバーに合わせて「[DoesNotReturn]」アノテーションをメソッドに追加してください。 | |
公開されている型またはメンバーの XML コメントがありません。 | |
実行時に複数のオーバーライド候補があります。 | |
同じ名前のシェーダーが複数見つかりました | |
名前空間はこのプロジェクトのデフォルト名前空間でなければなりません。 | |
アクセスされていないフィールドです。 | |
アクセスされていないローカル変数です。 | |
null 許容不可のバッキングフィールドが初期化されていません。 | |
null 許容不可のメンバーが初期化されていません。 | |
型パラメーターの制約に null 許容性の不一致があります。 | |
明示的なインターフェース指定子の参照型の null 許容性が、その型で実装されているインターフェースと一致しません。 | |
基本型で実装されたインターフェースの参照型の null 許容性が一致しません。 | |
戻り値の型に含まれる参照型の null 許容性が実装されたメンバーと一致しません。 | |
戻り値の型に含まれる参照型の null 許容性が暗黙的に実装されたメンバーと一致しません。 | |
戻り値の型に含まれる参照型の null 許容性がオーバーライドされたメンバーと一致しません。 | |
戻り値の型に含まれる参照型の null 許容性が partial メソッド宣言と一致しません。 | |
戻り値の型に含まれる参照型の null 許容性がターゲットデリゲートと一致しません(null 許容性属性が原因の可能性があります)。 | |
インターセプターメソッドの戻り値の型に含まれる参照型の null 許容性がインターセプト可能なメソッドと一致しません。 | |
ソース型の参照型の null 許容性がターゲット型と一致しません。 | |
型の参照型の null 許容性が実装されているメンバーと一致しません。 | |
型の参照型の null 許容性が暗黙的に実装されたメンバーと一致しません。 | |
型の参照型の null 許容性がオーバーライドされたメンバーと一致しません。 | |
パラメーターの型の参照型の null 許容性がターゲットデリゲートと一致しません(null 許容性属性が原因の可能性があります) | |
パラメーターの型における参照型の null 許容性が実装されたメンバーと一致しません | |
パラメーターの型における参照型の null 許容性が暗黙的に実装されたメンバーと一致しません | |
パラメーターの型における参照型の null 許容性がインターセプト可能なメソッドと一致しません | |
パラメーターの型における参照型の null 許容性がオーバーライドされたメンバーと一致しません | |
パラメーターの型における参照型の null 許容性が部分メンバー宣言と一致しません | |
戻り値の型の null 許容性が実装されたメンバーと一致しません(null 許容性属性が原因の可能性があります) | |
戻り値の型の null 許容性が暗黙的に実装されたメンバーと一致しません(null 許容性属性が原因の可能性があります) | |
戻り値の型の null 許容性がオーバーライドされたメンバーと一致しません(null 許容性属性が原因の可能性があります) | |
型引数の null 許容性が「class」制約と一致しません | |
型引数の null 許容性が制約型と一致しません | |
型引数の null 許容性が「notnull」制約と一致しません | |
パラメーターの型の null 許容性が実装されたメンバーと一致しません(null 許容性属性が原因の可能性があります) | |
パラメーターの型の null 許容性が暗黙的に実装されたメンバーと一致しません(null 許容性属性が原因の可能性があります) | |
パラメーターの型の null 許容性がオーバーライドされたメンバーと一致しません(null 許容性属性が原因の可能性があります) | |
null 許容値型は null になる可能性があります | |
オブジェクトまたはコレクションのイニシャライザーは、null の可能性のあるメンバーを暗黙的にデリファレンスします。 | |
廃止されたメンバーが、廃止されていないメンバーをオーバーライドします | |
廃止されたメンバーを必須にすべきではありません | |
'==' または '!=' の演算子とともに 'Object.Equals(オブジェクト o)'と 'Object.GetHashCode()' がオーバーライドされていません | |
機能を使用する前にプレビュー機能への参加を選択してください | |
パラメーターに、XML コメントの param タグに一致するものがありません | |
パラメーターはラムダで params 修飾子を持っていますが、ターゲット デリゲート型にはありません | |
パラメーターは外側の型の状態に取り込まれ、その値も基本コンストラクターに渡されます。 値は基底クラスによってもキャプチャーされる可能性があります。 | |
パラメーターは囲んでいる型の状態に取り込まれ、その値はフィールド、プロパティ、イベントの初期化にも使われます | |
関数の終了時に、パラメーターは条件付きで null 以外の値を持つ必要があります | |
[NotNullIfNotNull] アノテーションで指定されたパラメーターが null 以外の場合、終了時にパラメーターに null 以外の値を持たせる必要があります | |
終了時にはパラメーターが null 以外の値でなければなりません | |
パラメーターは、パラメーターリスト内の補間文字列ハンドラーパラメーターの後に配置されています | |
部分メンバー宣言にシグネチャーの違いがあります。 | |
部分メソッド宣言で型パラメーターの null 許容性が一貫していません | |
誤って空のステートメントを記述した可能性があります | |
パラメーターに対する null 参照引数の可能性があります | |
null 参照代入の可能性があります | |
null 参照が返される可能性があります | |
意図しない参照の比較の可能性があります | |
'using' または 'lock' ステートメントの引数となるローカルへの代入が正しくない可能性があります | |
プライマリコンストラクターパラメーターが基本型のメンバーによって隠蔽されています。 | |
レコードは 'Equals' を定義していますが 'GetHashCode' は定義していません | |
パラメーターの参照種別修飾子が非表示メンバーの該当するパラメーターと一致しません | |
パラメーターの参照種別修飾子が、オーバーライドまたは実装済みメンバーの該当するパラメーターと一致しません | |
パラメーターの参照種別修飾子がターゲットの該当するパラメーターと一致しません | |
揮発性フィールドへの参照は volatile として扱われません | |
[NotNullIfNotNull] アノテーションで指定されたパラメーターが null 以外の場合、戻り値は null 以外でなければなりません | |
インターセプト可能メソッドとインターセプターメソッドのシグネチャーが一致しません | |
ソースファイルは PDB で表現可能な 16,707,565 行の制限を超えています。デバッグ情報は正しくありません。 | |
'is' または 'as' 演算子で静的型を使用しています | |
構造体メンバーが 'this' または他のインスタンスメンバーを参照で返します | |
XML コメントの構文エラーです | |
marshal-by-reference クラスフィールドのアドレスを取得しています | |
テンプレートは静的な式である必要があります | |
'&' 演算子は、非同期メソッドのパラメーターまたはローカル変数には使用しないでください。 | |
null 許容参照型のアノテーションは「#nullable」アノテーションコンテキスト内のコードでのみ利用してください | |
null 許容参照型のアノテーションは、「#nullable」アノテーションコンテキスト内のコードでのみ使用する必要があります。 自動生成コードにはソース内に明示的な「#nullable」ディレクティブが必要です。 | |
ref 条件演算子のブランチが、互換性のない宣言スコープを持つ変数を参照しています。 | |
パラメーターに適用された CallerArgumentExpressionAttribute は自己参照のため効果がありません | |
CallerArgumentExpressionAttribute は無効なパラメーター名で適用されています。 | |
CallerArgumentExpressionAttribute は、オプションの引数を許可しないコンテキストで使用されるメンバーに適用されるため、効果がありません。 | |
CallerArgumentExpressionAttribute は効果がありません。CallerFilePathAttribute によってオーバーライドされます | |
CallerArgumentExpressionAttribute は効果がありません。CallerLineNumberAttribute によってオーバーライドされます | |
CallerArgumentExpressionAttribute は効果がありません。CallerMemberNameAttribute によってオーバーライドされます | |
CallerFilePathAttribute は効果がありません。CallerLineNumberAttribute によってオーバーライドされます | |
CallerFilePathAttribute は、オプションの引数を許可しないコンテキストで使用されるメンバーに適用されるため、効果がありません。 | |
CallerLineNumberAttribute は、オプションの引数を許可しないコンテキストで使用されるメンバーに適用されるため、効果がありません。 | |
CallerMemberNameAttribute は、オプションの引数を許可しないコンテキストで使用されるメンバーに適用されるため、効果がありません。 | |
CallerMemberNameAttribute は効果がありません。CallerFilePathAttribute によってオーバーライドされます | |
CallerMemberNameAttribute は効果がありません。CallerLineNumberAttribute によってオーバーライドされます | |
デフォルトのパラメーター値がターゲットのデリゲート型と一致しません。 | |
'EnumeratorCancellation' 属性は、'IAsyncEnumerable<>' を返す async-iterator メソッドの型 'CancellationToken' のパラメーターでのみ有効です。 | |
指定された式は、指定された定数と常に一致します。 | |
指定された式は、指定されたパターンと決して一致しません。 | |
「l」の接尾辞は数字「1」と簡単に混同されます | |
トップレベルのステートメントを含むコンパイルユニットが見つかったため、「Main」メソッドはエントリポイントとして使用されません。 | |
「in」パラメーターに対応する引数の「ref」修飾子は「in」と同等です。 代わりに「in」を使用することを検討してください。 | |
「in」パラメーターに対応する引数の「ref」修飾子は「in」と同等です。 代わりに「in」を使用することを検討してください。 | |
式の結果は常に null 許容型の「null」です。 | |
値型の値が「null」と等しくなることはないため、式の結果は常に「true」または「false」になります。 | |
値型の値が「null」と等しくなることはないため、式の結果は常に「true」または「false」になります。 | |
パラメーターの「scoped」修飾子がターゲットデリゲートと一致しません。 | |
パラメーターの「scoped」修飾子は、オーバーライドまたは実装されたメンバーと一致しません。 | |
switch 式はすべての可能な入力を処理しません(網羅的ではありません) | |
switch 式は、その入力タイプのすべての可能な値を処理するわけではありません(網羅的ではありません)。 ただし、「when」句を含むパターンは、この値に正常に一致する可能性があります。 | |
switch 式は一部の null 入力を処理しません(網羅的ではありません) | |
switch 式は、一部の null 入力を処理しません(網羅的ではありません)。 ただし、「when」句を含むパターンは、この値に正常に一致する可能性があります。 | |
switch 式は、名前のない列挙型値を含む入力型の一部の値を処理しません(網羅的ではありません) | |
ターゲット型によって異なる名前、または名前が指定されていない場合、タプル要素名は無視されます。 | |
タプル == または != 演算子のもう一方の側で異なる名前や名前が未指定の場合、タプル要素名は無視されます。 | |
型名には小文字の ASCII 文字のみが含まれます。 そのような名前は言語で予約される可能性があります | |
部分構造体の複数の宣言内のフィールド間の順序は定義されていません。 順序を指定するには、すべてのインスタンス フィールドを同一宣言内に記述する必要があります。 | |
他のアクセサーが「フィールド」を使用しているため、このアクセサーも「フィールド」を使用する必要があります。 | |
これは return ステートメントによってのみ、現在のメソッドをエスケープできる値を参照代入します。 | |
これはターゲットよりも広い値エスケープスコープを持つ値を参照代入し、より狭いエスケープスコープの値のターゲットを介した割り当てを可能にします。 | |
これは、より狭いエスケープスコープを持つ変数に式を参照代入します。 | |
これは参照によってローカルのメンバーを返しますが、参照ローカルではありません。 | |
これは参照によってパラメーターを返しますが、参照パラメーターではありません。 | |
これは参照によってパラメーターを返しますが、現在のメソッドにスコープが設定されています。 | |
これは ref パラメーター経由で参照によってパラメーターを返しますが、安全に返せるのは return ステートメントのみです。 | |
これは、ref または out パラメーターでないパラメーターのメンバーを参照によって返します。 | |
これは現在のメソッドにスコープが割り当てられたパラメーターのメンバーを参照で返します。 | |
これは ref パラメーター経由でパラメーターのメンバーを参照渡しで返しますが、安全に返せるのは return ステートメントのみです。 | |
これは参照によってローカルを返しますが、参照ローカルではありません。 | |
これは、アドレスの取得・サイズの取得・マネージ型へのポインターの宣言を行います。 | |
スローされる値が null の場合があります。 | |
型はすでにインターフェースリストにリストされており、参照型の null 許容性が異なります。 | |
型は評価目的でのみ使用され、今後のアップデートで変更または削除される可能性があります。 | |
タイプは評価のみを目的としており、将来のアップデートで変更または削除される可能性があります。 続行するには、この診断を抑制してください。 | |
型パラメーターには、XML コメント内に一致する typeparam タグがありません。 | |
型パラメーターは外側の型の型パラメーターと同じ名前です | |
型やエイリアスに「record」という名前を付けるべきではありません | |
XML フラグメントを含めることができません。 | |
割り当てられていないフィールド。 | |
割り当てられていない読み取り専用フィールド。 | |
null の可能性がある値のボックス解除。 | |
未解決のシェーダー名 | |
未使用のローカル変数 | |
このコンテキストで変数を使用すると、参照されている変数が宣言スコープ外に公開されることがあります。 | |
廃止されたシンボルの使用 | |
廃止されたシンボルの使用 (メッセージなし) | |
'dynamic' との互換性をテストするために 'is' を使用することは、'Object' との互換性をテストするのと本質的に同じであり、すべての non-null 値に対して成功します | |
XML コメントに「Parameter」用の 'param' タグがありますが、その名前のパラメーターはありません | |
XML コメントに「TypeParameter」用の 'typeparam' タグがありますが、その名前の型パラメーターはありません | |
XML コメントに型パラメーターを参照する cref 属性があります | |
XML コメントが有効な言語要素に配置されていません |
制約違反 (11 インスペクション)
このカテゴリには、主に 警告重要度レベルで、シンボル属性に関連する違反(ReSharper のコードアノテーションを含む)や、その他の類似した問題を検出するコードインスペクションが含まれます。
インスペクション | |
|---|---|
基本型が必要です | |
BaseTypeRequired 属性はクラスとインターフェースのみをサポートします | |
一貫性のない命名 | |
名前空間がファイルの場所と一致していません | |
null 非許容または必須のメンバーがコンストラクターの終了時に初期化されていません | |
null 非許容エンティティへの「null」割り当ての可能性 | |
「ValueRange」または「NonNegativeValue」属性の違反の可能性 | |
契約アノテーション定義の問題 | |
必要な基本型が他の型と競合しています | |
'[BaseTypeRequired]' 属性で指定された型が他の型と競合しています | |
「CannotApplyEqualityOperatorAttribute」でマークされている型の値は、「Equals()」を使用して比較する必要があります。 |
エンティティフレームワーク (8 インスペクション)
このカテゴリは、 Entity Framework およびその派生からの型やメンバーの使用を検証するコードインスペクションをまとめています。
インスペクション | |
|---|---|
データベース関数はデータベース以外のコンテキストで呼び出してはいけません | |
関数は SQL に変換できないため、データベースコンテキストで呼び出せません | |
データベースへの複数クエリの可能性 (N+1 問題) | |
関連するエンティティに対するデータベースへの複数クエリの可能性 (N+1 問題) | |
文字列長の無制限によって発生するパフォーマンス上の問題の可能性 | |
クエリによって関連エンティティのデータが不完全になる可能性があります | |
このプロパティで定義されたリレーションシップは、依存関係ループに寄与しています | |
ナビゲーションプロパティの使用で不完全なデータが返される可能性があります |
フォーマット (41 インスペクション)
このカテゴリのインスペクションは コードフォーマットの問題を検出します。
インスペクション | |
|---|---|
不正な空白行(他の場所で空白行が不足しています) | |
不正な空白行(他の場所では空白行が冗長です) | |
不正な空白行(中括弧付近の空白行数が間違っています) | |
不正なインデント(子ステートメント周囲) | |
不正なインデント(宣言中括弧の周囲) | |
不正なインデント(式中括弧の周囲) | |
不正なインデント(名前空間の中括弧の周囲) | |
不正なインデント(プリプロセッサディレクティブの周囲) | |
不正なインデント(ステートメント中括弧の周囲) | |
不正なインデント(switch ステートメント周辺) | |
不正なインデント(インデントサイズが正しくありません) | |
不正なインデント(インデントレベルが復元されていません) | |
不正なインデント(他の場所でインデントまたはインデント解除が不足しています) | |
不正なインデント(他の場所でインデントまたはインデント解除が冗長です) | |
不正なインデント(タブとスペースの不一致) | |
改行が正しくありません(リストのコンマ周囲) | |
改行が正しくありません(宣言中括弧の周囲) | |
改行が正しくありません(空中括弧の周囲) | |
改行が正しくありません(式中括弧の周囲) | |
改行が正しくありません(LINQ クエリ周囲) | |
改行が正しくありません(丸括弧の周辺) | |
改行が正しくありません(ステートメント中括弧の周囲) | |
改行が正しくありません(他の場所で改行が欠落しています) | |
改行が正しくありません(他の場所で改行が冗長です) | |
改行が正しくありません(複数のステートメントが 1 行にあります) | |
改行が正しくありません(複数の型メンバーが 1 行にあります) | |
不正なスペース(属性の周囲) | |
不正なスペース(中括弧の周囲) | |
不正なスペース(コロンの周囲) | |
不正なスペース(コンマの周囲) | |
不正なスペース(ジェネリック角括弧の周囲) | |
誤った間隔(メンバーアクセスシンボルの周辺) | |
誤った間隔(演算子シンボルの周辺) | |
誤った間隔(丸括弧の周辺) | |
誤った間隔(セミコロンの周辺) | |
誤った間隔(ステートメント内の角括弧の周辺) | |
誤った間隔(キーワードと丸括弧の間) | |
誤った間隔(複数のスペースは禁止されています) | |
誤った間隔(他の場所でスペースが不足しています) | |
誤った間隔(他の場所でスペースが冗長です) | |
誤った間隔(ここでタブは禁止されています) |
文法の問題 (4 インスペクション)
このカテゴリのインスペクションは、文字列リテラルやドキュメントコメント内の 文法上の問題を報告します。
インスペクション | |
|---|---|
コメントの文法エラー | |
マークアップ属性値の文法エラー | |
マークアップテキストの文法エラー | |
文字列リテラルの文法エラー |
言語使用の機会 (89 インスペクション)
このカテゴリには、主に 提案の重要度レベルのコードインスペクションが含まれており、より高度な言語構造が使用できる場合に通知されます。 これらのインスペクションは、古い言語バージョンの構文を検出し、より新しい言語バージョンの機能を使うことを提案します。 ほとんどのサポート対象言語では、言語バージョン は自動的に検出されるか手動で設定できます。
インスペクション | |
|---|---|
コレクション式に追加 | |
クラスをインスタンス化できません | |
条件式は null 合体として書き直すことができます | |
'as' 式の型チェックと次の null チェックを否定パターンマッチングに変換する | |
'as' 式の型チェックと次の null チェックをパターンマッチングに変換する | |
コンストラクターをメンバーイニシャライザーに変換する | |
コンストラクターをプライマリコンストラクターに変換する | |
デリゲート変数をローカル関数に変換する | |
拡張メソッドを拡張機能ブロックに変換する | |
'if' ステートメントを 'switch' に変換する | |
'await using' ステートメントまたは宣言に変換する | |
ラムダ式に変換 | |
静的クラスに変換 | |
'using' 宣言に変換 | |
ラムダ式をメソッドグループに変換する | |
否定された 'is' 式を否定パターンの 'is' 式に変換する | |
'Nullable<T>' を 'T?' に変換する | |
プロパティを自動プロパティに変換する | |
プロパティを自動プロパティに変換する(可能であれば) | |
プロパティをプライベート setter を持つ自動プロパティに変換する | |
static メソッド呼び出しを拡張機能メンバー呼び出しに変換する(修飾された static メソッド呼び出しを拡張機能メンバー呼び出しに変換する) | |
static メソッド呼び出しを拡張機能メンバー呼び出しに変換する(同じクラスの static メソッド呼び出しを拡張メソッドの呼び出しに変換) | |
foreach ループは LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます | |
For ループは foreach ループに変換できます | |
'if' ステートメントは '?:' 式として書き換えることができます | |
'if' ステートメントは '??' 式として書き換えることができます | |
'if' ステートメントは '??=' 代入として書き換えることができます | |
'if-return' ステートメントは 'return' ステートメントに書き換えることができます | |
'out' 変数宣言のインライン化 | |
一時変数のインライン化 | |
オプションのパラメーターを導入する(非公開アクセシビリティ) | |
オプションのパラメーターを導入する(private アクセシビリティ) | |
ネストを減らすために 'if' ステートメントを反転する | |
「null」チェックを代入と結合する | |
ラムダ式/匿名メソッドは「静的」にすることができます | |
ラムダ式/匿名メソッドは、割り当てを回避するために「静的」にする必要があります | |
ラムダ式/匿名メソッドは、含まれているコンテキストのキャプチャを含んではいけません | |
逐語的な文字列を使用するとリテラルの長さを短縮できます | |
ループは LINQ 式に変換できます | |
'and' パターンをマージする | |
条件 ?: 式を条件付きアクセスにマージする | |
否定 null/パターンチェックを複雑なパターンにマージする | |
ネストされたプロパティパターンをマージする | |
null/パターンチェックを複雑なパターンにマージする | |
null/パターン/値のチェックを 'or'/'and' パターンにマージする | |
連続するチェックを単一の条件付きアクセスチェックにマージする | |
既存の位置指定分解パターンに移動する | |
拡張機能ブロックに移動 | |
変数宣言をループ条件内に移動する | |
foreach ループの一部は LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます | |
ループ本体の一部を LINQ 式に変換できます | |
文字列補間式を渡す | |
冗長なアクセサー本体 | |
冗長なスプレッド要素 | |
自動プロパティを計算されたプロパティに置き換える | |
if ステートメントを null 伝播コードに置き換える | |
追加のチェックを行わないオブジェクトパターンを「var」パターンに置き換える | |
「SequenceEqual」を定数パターンに置き換える | |
'スライス' を範囲インデクサーに置き換える | |
'部分文字列' を範囲インデクサーに置き換える | |
「switch」ステートメントを「switch」式に置き換える | |
三項式を 'switch' 式に置き換える | |
'.OfType<T>()' に置き換える | |
'フィールド' キーワードに置き換える | |
プライマリコンストラクターパラメーターに置き換える | |
エイリアスを使用する | |
コレクション式構文を使用する | |
複合代入を使用する | |
複合代入を使用する | |
分解を使用する | |
分解を使用して変数を交換する | |
破棄代入を使用する | |
末尾からインデックス式を使用する | |
'nameof' 式を使って列挙メンバー名を参照する | |
'nameof' 式を使って名前を参照する | |
'nameof' 式を使い、文字列リテラルの一部で名前を参照する | |
'nameof' 式を使って型名を参照する | |
DependencyProperty を登録する際、「nameof」式を使用する | |
可能であれば、オブジェクトまたはコレクションイニシャライザーを使用する | |
位置分解パターンを使用する | |
生文字列を使用する | |
文字列補間式を使用する | |
型アノテーション構文を使用する | |
符号なし右 Shift 演算子 '>>>' を使用する | |
UTF-8 文字列リテラルを使用する | |
「with」式を使用して匿名オブジェクトをコピーする | |
「with」式を使用してレコードをコピーする | |
「with」式を使用して構造体をコピーする | |
「with」式を使用してタプルをコピーする |
NUnit (30 インスペクション)
これらのインスペクションは、NUnit テストに関連するコードの問題を検出します。
インスペクション | |
|---|---|
NUnit。 Async テストメソッドはタスクまたはタスク<T> を返す必要があります。 | |
NUnit。 値が重複しています。 | |
NUnit。 パラメーター属性が無視されました。 | |
NUnit。 暗黙的に指定されていない null 値。 | |
NUnit。 引数の型が互換性がないか、引数の値が正しくありません。 | |
NUnit。 予期される結果の型が互換性がないか、値が正しくありません。 | |
NUnit。 範囲の境界が正しくありません。 「to」は「from」以上である必要があります。 | |
NUnit。 範囲ステップの符号が一致しません。 | |
NUnit。 TestCase 属性に引数がありません。 | |
NUnit。 テストメソッド宣言に「CancelAfter」属性がありません。 | |
NUnit。 非 void テストメソッドに期待される結果がありません。 | |
NUnit。 属性に値が指定されていません。 | |
NUnit。 非公開テストメソッド。 | |
NUnit。 範囲「step」パラメーター値はゼロ以外である必要があります。 | |
NUnit。 TestCase 属性に冗長な引数があります。 | |
NUnit。 ExpectedResult の代わりに冗長な引数。 | |
NUnit。 Redundant expected result for void テストメソッド。 | |
NUnit。 指定された属性値により生成されるテストが多すぎます。 | |
NUnit。 指定された値はテストパラメーターの型と互換性がありません。 | |
NUnit。 テストケースの Result プロパティが ExpectedResult と重複しています。 | |
NUnit。 テストケースの Result プロパティは廃止されました。 | |
NUnit。 テストケースソースはフィールド、プロパティ、メソッドである必要があります。 | |
NUnit。 テストケースソースは非抽象であり、IEnumerable を実装している必要があります。 | |
NUnit。 テストケースソースは静的である必要があります。 | |
NUnit。 ステップ値では最大範囲値に到達できません。 | |
NUnit。 テストメソッドのパラメーター値が指定されていません。 | |
NUnit。 範囲内の値がテストパラメーターの型に適合しません。 | |
NUnit.AutoFixture. 引数の型が互換性がないか、引数の値が正しくありません。 | |
NUnit.AutoFixture. Test または TestFixture 属性がありません。 | |
NUnit.AutoFixture. InlineAutoData 属性に冗長な引数があります。 |
潜在的なコード品質問題 (230 インスペクション)
このカテゴリには、主に エラーまたは 警告レベルで、重大な問題(コードの臭い)を検出するインスペクションが含まれます。 このカテゴリには ローカライゼーション支援を保証するインスペクションも含まれます。
インスペクション | |
|---|---|
'?:' 式の真と偽のブランチが同一です | |
[MustDisposeResource] アノテーションは基本コンストラクターから継承されないため、明示的に配置する必要があります | |
[ThreadStatic] はインスタンスフィールドでは機能しません | |
抑制された null 許容警告は、根本的な問題を隠す可能性があります | |
抽象または仮想(オーバーライド可能な)イベントが呼び出されることはありません | |
破棄されたキャプチャー変数へのアクセス | |
クロージャの foreach 変数へのアクセス | |
変更されたキャプチャー変数へのアクセス | |
ビットマスクの値に応じて、式の結果は常に同じになります | |
実際の Shift 数はゼロに等しい | |
テキスト引数のあいまいなシンボル | |
階層内のアノテーションが競合する | |
条件式内の代入 | |
'await foreach' を使用しない非同期反復子の呼び出し | |
'await' 演算子のない Async メソッド('await' 演算子なしの Async タスク メソッドのオーバーライド) | |
'await' 演算子のない Async メソッド('await' 演算子のない Async タスク メソッド) | |
'await' 演算子のない非同期メソッド('await' 演算子なしの async void メソッドオーバーライド) | |
'await' 演算子のない Async メソッド('await' 演算子のない Async void メソッド) | |
自動プロパティアクセサーは決して使用されません(非公開アクセシビリティ) | |
自動プロパティアクセサーは決して使用されません(private アクセス) | |
可変長エスケープシーケンスとテキストの混在を避ける | |
戻り値の型が「void」のメソッドや関数には「async」を使用しないでください(戻り値の型が「void」かつ 'System.EventArgs' 型のパラメーターを持つメソッドや関数で「async」を使用しないでください) | |
戻り値の型が「void」のメソッドや関数には「async」を使用しないでください(戻り値の型が「void」で、'System.EventArgs' 型のパラメーターを持たないメソッドや関数で「async」を使用しないでください) | |
戻り値の型が「void」のメソッドや関数には「async」を使用しないでください('async void' メソッドや関数で例外を再スローしないでください) | |
デリゲート型が 'void' を返す場合は 'async' ラムダの使用を避けてください | |
バッキングフィールドが割り当てられているが使用されていません | |
バッキングフィールドが使用されていますが割り当てられていません | |
[Flags] 属性でマークされていない列挙型に対するビット演算 | |
暗黙的なデフォルトパラメーターを持つ基本メンバーへの呼び出し | |
'base.Equals(...)' の呼び出しは参照等価です | |
テキスト引数で静的シンボルにアクセスできません | |
テキスト引数のシンボルにアクセスできません | |
プロパティを解決できません | |
リソースを解決できません | |
リソース項目を解決できません | |
テキスト引数でシンボルを解決できません | |
marshal-by-reference クラスのキャプチャーされたフィールド参照は、実行時例外を引き起こす可能性があります | |
キャプチャーされたプライマリコンストラクターパラメーターは変更可能です | |
'volatile' フィールドへのキャプチャーされた参照は 'volatile' として扱われません | |
意図せずに Char が整数として使用されている可能性があります | |
クラスはインスタンス化されません(非公開アクセシビリティ) | |
クラスはインスタンス化されません(private アクセス) | |
コレクションの内容は決して照会されません(非公開アクセシビリティ) | |
コレクションの内容は決して照会されません(private アクセス) | |
コレクションは決して更新されません(非公開アクセシビリティ) | |
コレクションは決して更新されません(private アクセス) | |
競合する CQRS 属性 | |
ゼロ以外のオペランドを持つ定数 Shift 式の結果はゼロの値になります | |
共変配列変換 | |
CQRS コンテキストの交差。 コマンドがクエリコンテキストから呼び出されています。 (宣言に表示) | |
CQRS コンテキストの交差。 コマンドがクエリコンテキストから呼び出されています。 (使用箇所に表示) | |
CQRS コンテキストの交差。 クエリがコマンドコンテキストから呼び出されています。 (宣言に表示) | |
CQRS コンテキストの交差。 クエリがコマンドコンテキストから呼び出されています。 (使用箇所に表示) | |
'using' ステートメントで既にキャプチャーされている変数の破棄 | |
少なくとも 1 つの実行パスでゼロによる除算 | |
SpinLock を readonly フィールドに保存しないでください | |
'using' 変数にはオブジェクトイニシャライザーを使用しないでください | |
'using' 変数にはオブジェクトイニシャライザーを使用しないでください(オブジェクトイニシャライザー式は 'using' 変数の初期化時に例外をスローする可能性があります) | |
書式文字列の書式指定子の後に右中括弧を使用しないでください | |
辞書/セット初期化でキーが重複しています | |
重複した連鎖 'if' ブランチ | |
重複した連続 'if' ブランチ | |
重複した 'switch' アーム | |
重複した 'switch' ブランチ | |
要素はローカライズ可能です | |
空の一般的な catch 節 | |
空の 'with' 式は冗長なものです | |
明示的な unchecked コンテキストでの 'Enumerable.Sum' 呼び出し | |
浮動小数点数の等値比較 | |
エスケープシーケンスを簡略化できます | |
イベントは決して購読されない(非公開アクセシビリティ) | |
イベントは決して購読されない(private アクセス) | |
イベントは呼び出されなかった | |
匿名デリゲートによるイベント登録解除 | |
例外の再スローが意図されている可能性があります | |
呼び出し元情報属性付きパラメーターに明示的な引数が渡されました | |
共通コードを抽出する | |
フィールドは、インターフェースのデフォルト実装のプロパティを隠しています | |
フォーマットは指定されていますが、補間文字列式は IFormattable ではありません | |
関数本体が複雑すぎて解析できません | |
関数はすべての実行パスで再帰的です | |
関数は返さない | |
'GC.SuppressFinalize' はデストラクターのない型に対して呼び出されます | |
整数解析によるヒューリスティックに到達不可能なケース | |
整数解析によるヒューリスティックに到達不可能な switch アーム | |
コレクションイニシャライザーを持つ ImmutableArray<T> | |
'Math.Clamp()' メソッドに渡された引数が不一致です | |
取得したロックの順序に一貫性がありません | |
フィールドでの同期の一貫性がありません | |
「ConstantExpected」属性の誤った使用箇所 | |
末尾からのインデックスは 0 より大きくなければなりません。最後の要素を参照するには '^1' を使用してください | |
ServiceContract としてマークされたインターフェースは少なくとも 1 つの OperationContract を宣言する必要があります | |
無効な XML ドキュメントコメント | |
ポリモーフィックなフィールド風イベントの呼び出し | |
「IQueryable」が意図せず「IEnumerable」として使用されている可能性があります | |
イテレーターは返さない | |
ローカル関数がメソッドを隠します | |
ローカル変数がメンバーを隠しています | |
ローカル変数が主コンストラクターパラメーターを隠しています | |
ループ制御変数はループ内で決して変更されません | |
出力パラメーターに対する意味のない [HandlesResourceDisposal] アノテーション | |
入力パラメーターに対する意味のない [MustDisposeResource] アノテーション | |
メンバーが外部クラスの静的メンバーを隠しています | |
メンバー初期化値が無視されています | |
メソッドは両方の CQRS コンテキストから呼び出されています(宣言で表示) | |
メソッドは両方の CQRS コンテキストから呼び出されています(使用箇所で表示) | |
メソッドは [OperationContract] でマークされていますが、含まれる型は [ServiceContract] でマークされていません | |
オプションまたは 'params' パラメーターを持つメソッドがオーバーロードによって隠されています | |
オーバーライドされたメソッドのオプションパラメーター値の不一致 | |
ライブラリコードで Async ディスポーザブルに '.ConfigureAwait(false)' がありません | |
ライブラリ コードで '.ConfigureAwait(false)' がありません | |
シェバンディレクティブをファイルの最初に移動してください | |
複数の連続した 'OrderBy' 呼び出し | |
アクセスされていないフィールド(非公開アクセシビリティ) | |
アクセスされていないフィールド(private アクセス) | |
アクセスされていない位置プロパティ(非公開アクセシビリティ) | |
アクセスされていない位置プロパティ(private アクセス) | |
実装クラスの非公開メンバーがインターフェースのデフォルト実装を隠しています | |
'GetHashCode()' で参照されている非 readonly 型メンバー | |
Null 許容性が階層内のアノテーションと競合する | |
Nullable 警告抑制演算子は、反転した 'is' 式と混同される可能性があります | |
'Object.ReferenceEquals' は値型で呼び出されるため常に false です | |
一方向操作は戻り値を返してはいけません | |
演算子 'is'/'Type Of ... Is ...' を使用できます | |
対応する checked 演算子がない演算子 | |
オーバーライドされた GetHashCode が base の 'Object.GetHashCode()' を呼び出しています | |
パラメーターがメンバーを隠しています | |
パラメーターがプライマリコンストラクターパラメーターを隠しています | |
'partial' メンバー宣言間でパラメーター名が異なります | |
可能性あり '{0}.{1}: コレクションが変更されました' | |
インターフェースでメンバーにアクセスする際のあいまいさの可能性あり | |
値型と「null」との比較の可能性あり | |
循環コンストラクター呼び出しの可能性あり | |
Double-Check Locking パターンの実装が間違っている可能性があります。 チェックされたフィールドへの複数の書き込みアクセスの可能性あり | |
Double-Check Locking パターンの実装が間違っている可能性があります。 チェックされたフィールドへの読み取りアクセス | |
無限継承の可能性あり | |
分数の損失の可能性あり | |
'System.Type' 型の引数が間違っている可能性あり | |
'GetType()' の呼び出しが間違っている可能性あり | |
複数回の列挙の可能性あり | |
オーバーフローの可能性あり | |
'checked' コンテキストでオーバーフローが発生する可能性がある | |
'unchecked' コンテキストでオーバーフローが発生する可能性がある | |
「System.ArgumentOutOfRangeException」の可能性があります。 インデックスは負でない整数でなければなりません。 | |
「System.ArgumentOutOfRangeException」の可能性があります。 開始インデックスは終了インデックス以下でなければなりません。 | |
'System.InvalidCastException' の可能性あり | |
'foreach' ループで 'System.InvalidCastException' が発生する可能性があります | |
'System.InvalidOperationException' の可能性あり | |
'System.NullReferenceException' の可能性あり | |
'new' 式で作成された未割り当てオブジェクトの可能性あり | |
意図しない参照の比較の可能性があります | |
不純な構造体メソッドが読み取り専用変数で呼び出された可能性あり: 構造体値は呼び出しの前に必ずコピーされます | |
オプションパラメーター値を定義するための "DefaultValueAttribute" の誤解を招く可能性のある使用方法 | |
インデクサーイニシャライザーの前にコンマがない可能性があります | |
「CancellationToken」の誤った使用の可能性あり | |
セットで意図しない線形探索が行われている可能性があります | |
条件付き呼び出し内で意図しない変更の可能性あり | |
フォーマット文字列テンプレートではなく意図しない文字列補間の可能性あり | |
誤った文字列比較の可能性あり: スパンは同じメモリ位置を指しているときのみ等しくなります | |
ラムダやローカル関数内で誤解を招く可能性があるパラメーター名です | |
明示的に指定されたタプルコンポーネント名を優先してください | |
プライマリコンストラクターパラメーターのキャプチャは許可されていません | |
[Optional] 属性を持つ 'ref' または 'out' パラメーター | |
'using' でキャプチャされたオブジェクトによって生成されたタスクの返却 | |
'using' ステートメントによってキャプチャされた変数の戻り値 | |
関数の戻り値の型は非 nullable にできます | |
[MustUseReturnValue] アノテーション付きメソッドの戻り値が使用されていません | |
[MustDisposeResource] アノテーションが付けられたメソッドの戻り値が破棄されていません | |
プロパティの戻り値は呼び出し側で破棄する必要があります | |
'GetEnumerator' メソッド呼び出しの戻り値が破棄されていません | |
イテレータの戻り値が使用されていません | |
純粋なメソッドの戻り値が使用されていません | |
戻り値は破棄する必要がありますが、メソッドまたは関数に [MustDisposeResource] アノテーションが付いていません | |
安全なキャスト式は常に成功します | |
左オペランドがゼロの Shift 式はゼロに等しくなります | |
短命な「HttpClient」 | |
類似の匿名型が近傍で検出されました | |
類似する式の比較 | |
列挙型の一部の値が 'switch' 式内で処理されず、デフォルトアームの例外で処理されています | |
列挙型の一部の値が 'switch' ステートメント内で処理されていません | |
列挙型の一部の値が 'switch' 文内で処理されず、デフォルトセクションで処理されています | |
ジェネリック型の静的フィールドまたは自動プロパティ | |
静的メンバーイニシャライザーが下または他の箇所の静的メンバーを参照しています | |
文字列フォーマットメソッドの問題 | |
構造化ログメッセージ項目が重複している、または大文字・小文字のみ異なっています | |
構造化メッセージテンプレートの問題 | |
同期プリミティブに対する疑わしいロック | |
ArgumentNullException における疑わしいパラメーター名です | |
この型の左オペランドに対する疑わしい Shift 数です | |
疑わしい型変換またはチェック | |
破棄を示すような名前を持つ変数の疑わしい使用 | |
疑わしい「揮発性」フィールドの使用: 複合操作はアトミックではありません。 「Interlocked」クラスを代わりに使用できます。 | |
実行時に失われる可能性があるモジュールからのシンボル | |
末尾再帰呼び出しはループで置き換えることができます | |
「is」演算子の式は、指定された型にはなりません | |
指定された「is」演算子の式は常に指定された型になります | |
最適なパフォーマンスを得るには、パラメーターに定数が必要です。 | |
このパターンは冗長であり、実行時チェックは行われません | |
ソース式は常に指定されたパターンと一致します | |
ソース式は指定されたパターンと決して一致しません | |
スレッド静的フィールドにイニシャライザーがあります | |
キャストして null チェックする処理は型チェックで代替できます | |
型チェックとキャストは統合できます | |
型パターンとキャストは統合できます | |
割り当てられていないフィールド(非 private アクセシビリティ) | |
割り当てられていないフィールド(private アクセシビリティ) | |
割り当てられていない読み取り専用フィールド。 | |
未確認の CQRS エンティティ | |
未知の Razor レイアウト | |
不明な Razor セクション | |
<inheritdoc /> の使用が無効です | |
ベース候補からドキュメントを継承するには、ルートレベルで <inheritdoc /> を利用してください | |
コレクションの count プロパティを使用してください | |
書式文字列で書式指定子を使用してください | |
補間文字列で書式指定子を使用してください | |
null でない値で成功する型チェックの代わりに null チェックを使用してください | |
null でない値で成功する型チェックの代わりに null チェックパターンを使ってください | |
属性の代わりに null 許容アノテーションを使ってください | |
不要な算術演算です | |
ループ内で stackalloc を使用しています | |
非変数修飾子式のプロパティに割り当てた値が失われることがあります | |
'value' パラメーターは使用されていません | |
変数は null 不可として宣言できます | |
ローカル関数内の変数が外部スコープの変数を隠します | |
コンストラクター内で仮想メンバー呼び出しがあります | |
「void」メソッドに [MustDisposeResource] 属性が付与されています | |
「void」メソッドに [MustUseReturnValue] 属性が付与されています | |
「void」メソッドに [Pure] 属性が付与されています | |
オブジェクトイニシャライザーの代わりに「with」式が使用されています | |
「with」式がアクセス可能なすべてのインスタンスメンバーを変更します |
コードの冗長性 (102 インスペクション)
このカテゴリのコードインスペクションは、可読性やスタイルに影響する冗長部分やデッドコードを探し、これらは安全に削除できます。 一部のコード冗長性は自動的に修正できず、それらのクイックフィックスは対話モードで実行され、ユーザー入力が必要です。 ただし、冗長な部分のほとんどは スコープ内の修正 または コードのクリーンアップ を使うことでユーザー操作なしで修正できます。
インスペクション | |
|---|---|
'??' 条件が null または null でないことが分かっています | |
null 許容参照型のアノテーションにより、'??' 条件が null にはなりません | |
[NotNull] または [CanBeNull] 属性は、すでに同じ null 許容参照型アノテーションが適用された型に使用されています | |
匿名メソッドシグネチャーは不要です | |
配列の作成は配列イニシャライザーに置き換えられます | |
代入は使用されていません | |
代入結果は完全に破棄されています | |
積分定数との比較は無意味です | |
条件付きアクセス修飾子式が null または null でないことが分かっています | |
null 許容参照型のアノテーションによると、条件付きアクセス修飾子式は null ではありません | |
項目を辞書に追加する前の「ContainsKey」呼び出しは冗長なものです | |
CQRS 属性は冗長なため削除できます | |
二重否定演算子 | |
重複したステートメント | |
空の拡張機能ブロック | |
空の 'for' ループは冗長なものです | |
空の領域 | |
明示的なデリゲート作成式は冗長なものです | |
式は常に 'null' です | |
式は常に「true」または「false」です | |
null 許容参照型アノテーションによると、式は常に「true」または「false」です | |
ヒューリスティックに到達不能コード | |
即時デリゲート呼び出し | |
Math.Abs() の引数は常に負でありません | |
Math.Sign() メソッドは常に同じ結果を返します | |
属性に引数がない場合、丸括弧は冗長です | |
パターンは常に「true」または「false」です | |
プライベートフィールドはローカル変数に変換できます | |
生文字列は簡略化できます | |
冗長な [AttributeUsage] 属性プロパティの割り当て | |
冗長な "abstract" 修飾子 | |
匿名型プロパティの冗長な明示的名前 | |
呼び出し元引数式パラメーターに渡された冗長な引数 | |
デフォルト値を持つ冗長な引数 | |
冗長な算術オーバーフロー検出コンテキスト | |
冗長な「属性」接尾辞 | |
冗長な "base." 修飾子 | |
冗長なブール比較 | |
コレクションイニシャライザーの冗長な波括弧 | |
冗長な "case" ラベル | |
デフォルトセクション直前の冗長な "case" ラベル | |
冗長なキャスト | |
冗長な catch 節 | |
レコード宣言の冗長な "class" キーワード | |
冗長なコレクションコピー | |
代入前の冗長な条件チェック | |
冗長な条件付き三項式の使用 | |
「ConfigureAwait」による冗長なコンテキストキャプチャ | |
冗長な制御フロー移動ステートメント | |
冗長な破棄指定 | |
冗長な "else" キーワード | |
オブジェクト作成式内の冗長な空引数リスト | |
冗長な空の「finally」ブロック | |
冗長な空のオブジェクトまたはコレクションイニシャライザー | |
冗長な空の「switch」セクション | |
'params' パラメーターの引数内の冗長な明示的コレクション作成 | |
冗長な明示的 nullable 型作成 | |
冗長な明示的な位置プロパティ宣言 | |
配列作成における冗長な明示的サイズ指定 | |
冗長な明示的タプルコンポーネント名 | |
配列作成時の冗長な明示的な型 | |
冗長な固定ポインター宣言 | |
冗長なグローバル using ディレクティブ | |
冗長な 'IEnumerable.Cast<T>' または 'IEnumerable.OfType<T>' 呼び出し | |
冗長なラムダ式パラメーター型指定 | |
冗長なラムダ署名の丸括弧 | |
冗長な名前修飾子 | |
非 null 基本型で制約される型パラメーターへの冗長な "notnull" 制約 | |
別の非 null 基本型で制約された型パラメーターの基本型制約における冗長な nullable アノテーション | |
非 null 型種別を持つ型パラメーターの基本型制約における冗長な nullable アノテーション | |
非 null 基本型で制約された型パラメーターの 'class?' 制約内における冗長な nullable アノテーション | |
冗長な null 許容属性 | |
冗長な null 許容ディレクティブ | |
冗長な null 許容警告抑制式 | |
冗長な 'object.ToString()' 呼び出し | |
値型での冗長な 'object.ToString()' 呼び出し | |
論理条件式の冗長なオペランド | |
冗長な 'orderby' 句の 'ascending' キーワード | |
冗長なプロパティパターン句 | |
冗長な範囲境界 | |
冗長な "readonly" 修飾子 | |
冗長な "scoped" パラメーター修飾子 | |
型または名前空間宣言後の冗長なセミコロン | |
冗長な文字列補間 | |
冗長な 'string.Format()' 呼び出し | |
冗長な 'string.ToCharArray()' 呼び出し | |
冗長な 'switch' 式アーム | |
'nameof' 内の冗長な型引数 | |
メソッドの冗長な型引数 | |
パターン内の冗長な型チェック | |
冗長な型宣言本体 | |
冗長な using ディレクティブ | |
冗長な逐語的接頭辞 | |
冗長な文字列逐語的接頭辞 | |
冗長な「virtual」修飾子 | |
冗長な「WithCancellation()」呼び出し | |
冗長なパターンマッチング丸括弧を削除する | |
常に一致するサブパターンは冗長なものです | |
'true' は 'for' ステートメント条件として冗長です | |
nullable 型の型チェックは基本型チェックと同じです | |
unsafe コンテキスト宣言は冗長なものです | |
未使用の null 許容ディレクティブ |
シンボル宣言の冗長性 (51 インスペクション)
このカテゴリには、主に 警告重要度レベルで、空や未使用のシンボル宣言を検出するコードインスペクションが含まれます。
インスペクション | |
|---|---|
継承されない仮想(オーバーライド可能な)メンバーを持つクラス(非公開アクセシビリティ) | |
継承されない仮想(オーバーライド可能な)メンバーを持つクラス(private アクセス) | |
タプルのコンポーネントは使用されていません | |
「DefaultParameterValueAttribute」は「OptionalAttribute」と一緒に使用する必要があります | |
空のコンストラクター | |
空のデストラクター | |
'partial void' メソッドの空の実装は冗長なものです | |
空の名前空間宣言 | |
エンティティはその名前の取得にのみ使用されています(非 private アクセシビリティ) | |
エンティティはその名前を取得するためだけに使用されます(private アクセシビリティ) | |
ローカル関数は使用されません | |
ローカル関数は使用されません | |
ローカル関数の戻り値は使用されません | |
メソッドの戻り値は使用されません(非公開アクセシビリティ) | |
メソッドの戻り値は使用されません(private アクセス) | |
アクセスされていないローカル変数です。 | |
アクセスされないローカル変数は「out」パラメーター値を破棄する目的でのみ使用されます | |
アクセスされていないプライマリコンストラクターパラメーター | |
パラメーターは前提条件チェックにのみ使用されます(非公開アクセシビリティ) | |
パラメーターは前提条件チェックにのみ使用されます(private アクセス) | |
パラメーター出力値は常に破棄されます(非公開アクセシビリティ) | |
パラメーター出力値は常に破棄されます(private アクセス) | |
'params' 修飾子はオーバーライド時に常に無視されます | |
冗長な属性 [SetsRequiredMembers] | |
冗長な基底コンストラクター呼び出し | |
基本型リストの冗長なクラスまたはインターフェース指定 | |
冗長なメンバーイニシャライザー | |
冗長なメンバーオーバーライド | |
冗長なメソッドオーバーロード(非公開アクセシビリティ) | |
冗長なメソッドオーバーロード(private アクセス) | |
メソッド宣言の冗長な 'partial' 修飾子 | |
型宣言の冗長な 'partial' 修飾子 | |
sealed クラスの sealed メンバー | |
型は使用されません(非公開アクセシビリティ) | |
型は使用されません(private アクセス) | |
型メンバーは基本型経由でアクセスされることはありません(非 private アクセシビリティ) | |
型メンバーは基本型経由でアクセスされることはありません(private アクセシビリティ) | |
型メンバーが使用されていません(非公開アクセシビリティ) | |
型メンバーは使用されません(private アクセス) | |
型メンバーはオーバーライドでのみ使用されます(非公開アクセシビリティ) | |
型メンバーはオーバーライドでのみ使用されます(private アクセス) | |
列挙型の基底型は 'int' です | |
未使用のラベル | |
未使用のローカル変数 | |
未使用のパラメーター(非公開アクセシビリティ) | |
未使用のパラメーター(private アクセス) | |
部分メソッドの未使用パラメーター | |
未使用の位置パラメーター | |
未使用の型パラメーター | |
仮想(オーバーライド可能な)メンバーは決してオーバーライドされません(非公開アクセシビリティ) | |
仮想(オーバーライド可能な)メンバーは決してオーバーライドされません(private アクセシビリティ) |
セキュリティ (1 インスペクション)
このカテゴリのインスペクションは、 Mend.io(英語) に従って脆弱性を持つ NuGet パッケージを報告します。
インスペクション | |
|---|---|
脆弱な API の使用 |
スペルの問題 (3 インスペクション)
これらのインスペクションは 様々なコンテキストでタイプミスを検出します。
インスペクション | |
|---|---|
コメントのタイプミス | |
識別子のタイプミス | |
文字列リテラルのタイプミス |
構文スタイル (48 インスペクション)
このカテゴリのインスペクションは コード構文スタイル への違反を検出します。 ほとんどのコードインスペクションとは異なり、これらのインスペクションは、 ページの ReSharper オプション Alt+R、O に設定された対応するコードスタイルルールによって同じコード構造をコード問題として検出する場合も、しない場合もあります。 これらのインスペクションで検出された問題は、 コードのクリーンアップ を使用して修正することもできます。
インスペクション | |
|---|---|
あいまいな優先順位を避けるために丸括弧を追加 | |
静的メンバーの修飾子を追加 / 削除 | |
'this.' 修飾子を追加 / 削除 | |
修飾子宣言の順序を調整 | |
アクセサー順序を整理する | |
null チェックパターンを整える | |
空文字列スタイル | |
セクション内の属性を結合または分離 | |
分解宣言の 'var' の結合または分離 | |
代入式をブロック内に配置 | |
冗長な丸括弧を削除 | |
組み込み型参照を CLR 型名またはキーワードに置き換える | |
静的メンバーアクセス式の中で組み込み型参照を CLR 型名またはキーワードに置き換える | |
制御転送ステートメントの前に空行を入れて分離 | |
行末の不要な空白 | |
インデントにタブ文字の使用は禁止されています | |
型メンバーには明示的または暗黙的な修飾子定義を使用 | |
型には明示的または暗黙的な修飾子定義を使用 | |
優先する引数スタイルを使用 | |
匿名関数の優先引数スタイルを使用 | |
リテラル値の優先引数スタイルを使用 | |
名前付き式の優先引数スタイルを使用 | |
文字列リテラル値の優先引数スタイルを使用 | |
推奨するボディスタイルを使用(優先ボディスタイルのコンストラクターまたはデストラクターに変換) | |
優先するボディスタイルを使用 (優先するボディスタイルでローカル関数へ変換) | |
優先するボディスタイルを使用 (優先するボディスタイルでメソッドまたは演算子に変換) | |
優先するボディスタイルを使用 (優先するボディスタイルでプロパティ、インデクサー、イベントに変換) | |
推奨するブレーススタイルを使用('do-while' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('fixed' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('for' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('foreach' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('if' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('lock' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('using' ステートメントに中括弧を強制) | |
推奨するブレーススタイルを使用('while' ステートメントに中括弧を強制) | |
優先するブレーススタイルを使用(冗長なブレースを削除) | |
優先する名前空間のボディスタイルを使用 | |
破棄宣言に優先スタイルを使用 | |
複数行リストで新しい行の前の末尾コンマに優先スタイルを使用 | |
最後の要素の後に改行がない場合は末尾コンマに優先スタイルを使用 | |
型が明らかな場合はデフォルト値式に優先スタイルを使用 | |
型が明確でない場合はデフォルト値式に優先スタイルを使用 | |
生成される型が明らかな場合は「new」式の優先スタイルを使用 | |
生成される型が明確でない場合は「new」式の優先スタイルを使用 | |
推奨 'var' スタイルを使用(他の場所) | |
推奨 'var' スタイルを使用(組み込み型の場合) | |
推奨 'var' スタイルを使用(分解宣言) | |
推奨 'var' スタイルを使用(型が単純な場合) |
Unity (47 インスペクション)
このカテゴリのインスペクションは、 Unity(英語) プロジェクトに固有のコードの問題を報告します。
インスペクション | |
|---|---|
代替の非割り当てメソッドが利用可能 | |
PropertyDrawer から派生したクラスでは "base.OnGUI()" を避けてください | |
コンポーネントまたはスクリプタブルオブジェクトを解決できません | |
DOTS: IAspect フィールドは次のいずれかの型である必要があります: RefRW、RefRO、EnabledRefRW、EnabledRefRO、DynamicBuffer、Entity | |
DOTS: 型キーワードの不一致 | |
DOTS: 指定された型は構造体型でなければなりません | |
同名のイベント関数がすでに宣言されています | |
「Component」または「MonoBehaviour」から派生した型が必要です | |
「ScriptableObject」から派生した型が必要です | |
「ComponentLookup」タイプのフィールドは、使用する前に更新する必要があります。 | |
ファイル名はアセンブリの名前と一致する必要があります | |
グループパスが定義されていません | |
メソッドシグネチャーが正しくありません | |
オーディンのグループ属性タイプが正しくありません | |
メンバーが複数の UI グループに同時に表示される | |
文字列リテラルで参照されているメソッドには、予期されたシグネチャーがありません | |
「MonoBehaviour」インスタンスは、「new」ではなく「GameObject.AddComponent<T>()」でインスタンス化する必要があります | |
パラメーターは「コンポーネント」から派生する必要があります | |
複数のフィールドへの属性の誤った適用の可能性があります | |
基盤となる Unity エンジンオブジェクトの有効期間チェックの意図しないバイパスの可能性 ('UnityEngine.Object' から派生した型の null 合体は、基礎となる Unity エンジンオブジェクトの有効期間チェックをバイパスする) | |
基盤となる Unity エンジンオブジェクトの有効期間チェックの意図しないバイパスの可能性 ('UnityEngine.Object' から派生した型で null が伝播すると、基礎となる Unity エンジンオブジェクトの有効期間チェックがバイパスされます。) | |
基盤となる Unity エンジンオブジェクトの有効期間チェックの意図しないバイパスの可能性 ('UnityEngine.Object' から派生した型のパターンマッチング null チェックは、基礎となる Unity エンジンオブジェクトの有効期間チェックをバイパスする) | |
GUID ベースのアセンブリ参照を優先する | |
冗長な属性の使用 (属性は、この宣言型に適用すると冗長です) | |
冗長な属性の使用 (冗長な「FormerlySerializedAs」属性) | |
冗長な属性の使用 (冗長な「HideInInspector」属性) | |
冗長な属性の使用 (冗長な「InitializeOnLoad」属性) | |
冗長な属性の使用 (冗長な「SerializeField」属性) | |
冗長な Unity イベント関数 | |
組み込みコンポーネントのプロパティへの繰り返しアクセスは非効率的です | |
シーンが存在しません | |
ビルド設定でシーンが無効化されています | |
「ScriptableObject」インスタンスは、「new」ではなく「ScriptableObject.CreateInstance<T>()」でインスタンス化する必要があります | |
オブジェクトのインスタンス化の直後に「親」プロパティを設定するのは非効率的です | |
短いシーン名が一意ではありません | |
文字列ベースのグラフィックスプロパティルックアップは非効率的です | |
コンポーネントタイプの文字列ベースのルックアップは非効率的です | |
ビルド設定にインデックスがありません | |
入力名が入力マネージャーで定義されていません | |
レイヤーが「タグとレイヤー」で定義されていません | |
プロジェクトでリソースが定義されていません | |
別のメニュー項目に同じショートカットが定義されています | |
タグが「タグとレイヤー」で定義されていません | |
プロジェクト内に同名のアニメーターステートがありません。 | |
ビルド設定に同名のシーンがありません | |
関数内で 'GetSingleton' 呼び出しの結果を使用するには、'OnCreate' に 'RequireForUpdate' 呼び出しを含める必要があります。 | |
明示的な文字列比較の代わりに「CompareTag」を使用する |
Unity バーストコンパイラーの警告 (17 インスペクション)
このカテゴリのインスペクションは、コードが実際にコンパイルされる前に Unity バーストコンパイラー(英語)の警告を報告します。
インスペクション | |
|---|---|
マネージドインデクサーへのアクセスはサポートされていません | |
マネージドメソッドへのアクセスはサポートされていません | |
ボクシングはサポートされていません | |
バースト: String.Format(format, ...) 引数の型が無効です | |
バースト: この変数は System.String に解決されるため、Burst コンパイルされたコールスタックで無効なマネージドメソッド呼び出しが発生する可能性があります。 | |
マネージ型の作成はサポートされていません | |
デバッグログ関数は文字列のみを受け入れます | |
関数シグネチャーにマネージ型を含めることはできません | |
非読み取り専用の静的フィールドからの読み込みはサポートされていません | |
マネージ型の読み込みはサポートされていません | |
共有静的型パラメーターにはアンマネージ制約が必要です | |
一部の SharedStatic`1.GetOrCreate オーバーロードによってコンパイラーエラーが発生します | |
String.Format(format, ...) は文字列リテラルと const 文字列のみを受け入れます | |
'foreach' 構造はサポートされていません | |
Try ステートメントはサポートされていません | |
Typeof は Burst では禁止されています | |
静的フィールドへの書き込みはサポートされていません |
Unity パフォーマンスインスペクション (5 インスペクション)
このカテゴリのインスペクションは、計算効率の悪いパターン Unity(英語) プロジェクトを報告します。
インスペクション | |
|---|---|
「Camera.main」は高負荷です | |
高負荷なメソッド呼び出し | |
高負荷な null 比較 | |
乗算演算の順序が非効率的です | |
多次元配列の代わりにジャグ配列または一次元配列を使用してください |
Unreal ビルドシステム (2 インスペクション)
このカテゴリのインスペクションは、 Unreal Engine プロジェクトに特有です。
インスペクション | |
|---|---|
プロジェクトファイルにプラグインの依存関係がありません | |
この名前のモジュールは存在しません |
Xunit (1 インスペクション)
これらのインスペクションは、xUnit.Net テストに関連するコードの問題を検出します。
インスペクション | |
|---|---|
Xunit テストにおけるコンソール出力 |