C# のコードインスペクション
C# では、JetBrains Rider 2026.1 は 1253 エラーを検出するインスペクション (壊れた構文、未解決のシンボル、コンパイラーエラーなど。これらのインスペクションは設定や無効化はできません)と、1076 独自のコードインスペクションの 2 種類のコードインスペクションを提供しており、後者は 無効化したり、その 重要度レベルを変更したりできます。
これらの コードインスペクションは、開いているすべてのファイルの 設計時にコードの問題を検出するのに役立ち、さらに 特定のスコープ内でコードの問題を見つけることもできます。
構成可能な C# インスペクションは、 カテゴリ別にグループ化されて以下にリストされています。
コード通知 (3 インスペクション)
このカテゴリには、重要度レベルが低いコードインスペクションがまとめられています。
インスペクション | |
|---|---|
C# 14 のスパンパラメーターによるオーバーロード解決における重大な変更 | |
メソッドの呼び出しをスキップする | |
コードの一部を解析できません |
一般的なプラクティスとコードの改善 (172 インスペクション)
このカテゴリには、主にコードの可読性に影響する中程度の重大さの問題を検出するインスペクションがまとめられています。
インスペクション | |
|---|---|
派生型を介した型の静的メンバーへのアクセス | |
'Stream.Read()' によって読み取られた実際のバイト数は無視されます | |
ローカル関数の前に明示的な「return」または「continue」を追加する | |
階層のアノテーション複製 | |
自動プロパティは取得専用にすることができます (非公開アクセシビリティ) | |
自動プロパティは取得専用にすることができます (private アクセス) | |
基本メンバーには「params」パラメーターがありますが、オーバーライドにはありません | |
「追加」の前に「含む」を簡略化できます | |
キャスト式は明示的な型引数に置き換えることができます | |
キャスト式は明示的な変数型に置き換えることができます | |
キャスト式はラムダの戻り値の型に置き換えることができます | |
キャスト式は簡略化された型引数に置き換えることができます | |
ロックフィールドタイプを 'System.Threading.Lock' に変更する | |
代わりに参照等価をチェックする | |
代わりに参照等価をチェックする | |
代わりに参照等価をチェックする | |
代わりに参照等価をチェックする | |
クラスを密閉することができます (non-inheritable) (非公開アクセシビリティ) | |
クラスを密閉することができます (non-inheritable) (private アクセス) | |
紛らわしいボディのようなステートメント | |
非コンテナー型の宣言に対するコンテナーの null 許容性属性の使用 | |
if do while を 'while' に変換 | |
'if' を '||' に変換する | |
ローカル変数またはフィールドを定数に変換する (非公開アクセシビリティ) | |
ローカル変数またはフィールドを定数に変換する (private アクセス) | |
推論された null 許容性宣言(パラメーターは null でないと推論される) | |
推論された null 許容性宣言(パラメーターは null 許容と推論される) | |
推論された null 許容性宣言(型メンバーは null でないと推論される) | |
推論された null 許容性宣言(型メンバーは null 許容と推論される) | |
辞書項目の削除は単一の「Remove」で簡素化できます | |
辞書検索は「GetValueOrDefault」で簡素化できます | |
「TryAdd」で辞書検索を簡素化できます | |
辞書検索は「TryGetValue」で簡略化できます | |
空のステートメントは冗長です | |
共通プロパティパターンの抽出 | |
フィールドは読み取り専用にすることができます (非公開アクセシビリティ) | |
フィールドは読み取り専用にすることができます (private アクセス) | |
取得専用の自動プロパティは割り当てられません | |
条件の反転 | |
反復変数はより具体的な型で宣言できます | |
ローカル変数宣言と代入を結合する | |
ローカル関数を静的にすることができます | |
ローカル変数の宣言スコープが広すぎます | |
抽象クラスでコンストラクターを保護する | |
メンバーはプライベートにすることができます (非公開アクセシビリティ) | |
メンバーはプライベートにすることができます (private アクセス) | |
メンバーを保護することができます (非公開アクセシビリティ) | |
メンバーを保護することができます (private アクセス) | |
メンバーは静的にすることができます (共有) (非公開アクセシビリティ) | |
メンバーは静的にすることができます (共有) (private アクセス) | |
メンバーまたは型を内部にすることができます (友達) | |
メソッドに Async オーバーロードがあります | |
メソッドにキャンセルサポート付きの Async オーバーロードがあります | |
キャンセルをサポートするメソッド | |
非公開または内部型またはメンバーの 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>(非公開アクセシビリティ)にできます | |
戻り値の型は 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 式の結果は、含まれているメソッドの外部に Exposed される場合があります。 | |
ログメッセージのテンプレートに、ログメソッド定義に一致するパラメーターがありません | |
'System.Threading.Lock' 型の値を別の型に変換すると、'lock' ステートメントで意図しないモニターベースのロックが使用される可能性があります。 | |
匿名メソッド、ラムダ式、クエリ式、イテレータから 'base' キーワードを使用してメンバーにアクセスすると、確認できないコードが返されます | |
位置合わせ値 'value' の大きさが 'magnitude limit' を超えているため、大きなフォーマット済み文字列となる可能性があります。 | |
XML コメントのあいまいな参照 | |
引数は、参照型の null 許容性の違いにより、パラメーターの出力として使用できません。 | |
引数は、参照型の null 許容性の違いにより、対応するパラメーターで使用できません。 | |
引数は「ref readonly」パラメーターに渡されるため、変数である必要があります。 | |
引数は「in」キーワードを使用して渡す必要があります。 | |
条件式の代入 | |
同じ変数に代入 | |
await 式のない Async 関数 | |
await 式のない Async メソッド呼び出し | |
同期エントリポイントが見つかったため、非同期の「Main」メソッドはエントリポイントとして使用されません。 | |
Async イテレーターには型 'CancellationToken' のパラメーターが 1 つ以上ありますが、いずれも 'EnumeratorCancellation' 属性が付与されていません。 | |
'attribute modifier' はこの属性の場所として認識されていません。 このブロック内のすべての属性は無視されます | |
'attribute modifier' はこの宣言に対して有効な属性の場所ではありません。 このブロック内のすべての属性は無視されます | |
コメントファイルに不正な形式の XML があります | |
ビット演算 OR 演算子が符号拡張オペランドで使用されています。 | |
「readonly」メンバーから非読み取り専用メンバーを呼び出すと「this」の暗黙的なコピーが作成されます | |
null リテラルを null 不可の参照型に変換できません。 | |
XML コメントで参照を解決できません | |
クラスは Object.Equals(object 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 許容性が部分メソッド宣言と一致しません。 | |
戻り値の型の参照型の 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(object o)' および 'Object.GetHashCode()' がオーバーライドされていません | |
機能を使用する前にプレビュー機能を有効にしてください | |
パラメーターに XML コメント内で一致する param タグがありません | |
パラメーターはラムダに params 修飾子がありますが、ターゲットのデリゲート型にはありません | |
パラメーターは外側の型の状態に取り込まれ、その値も基本コンストラクターに渡されます。 値は基底クラスによってもキャプチャーされる可能性があります。 | |
パラメーターは囲んでいる型の状態に取り込まれ、その値はフィールド、プロパティ、イベントの初期化にも使用されます | |
関数を終了するとき、パラメーターは条件付きで null 以外の値を持っている必要があります | |
[NotNullIfNotNull] アノテーションで指定されたパラメーターが null 以外であるため、終了するときにパラメーターも null 以外の値を持たなければなりません | |
終了時にはパラメーターが null 以外の値でなければなりません | |
パラメーターは、パラメーターリスト内の補間文字列ハンドラーパラメーターの後に現れます | |
部分メンバー宣言にはシグネチャーの違いがあります | |
部分メソッド宣言で型パラメーターの null 許容性が一貫していません | |
誤って空のステートメントを書いている可能性があります | |
パラメーターに対して null 参照引数の可能性があります | |
null 参照が代入される可能性があります | |
null 参照を返す可能性があります | |
意図しない参照の比較の可能性があります | |
'using' または 'lock' ステートメントの引数となるローカル変数への代入が正しくない可能性があります | |
プライマリコンストラクターパラメーターが基本型のメンバーによってシャドウされています。 | |
レコードでは 'Equals' が定義されていますが、'GetHashCode' は定義されていません | |
パラメーターの参照種別修飾子が非表示メンバー内の対応するパラメーターと一致しません | |
パラメーターの参照種別修飾子がオーバーライドまたは実装されたメンバーの対応するパラメーターと一致しません | |
パラメーターの参照種別修飾子がターゲット内の対応するパラメーターと一致しません | |
volatile フィールドへの参照は volatile として扱われません | |
[NotNullIfNotNull] アノテーションで指定されたパラメーターが null 以外であるため、戻り値は null 以外でなければなりません | |
インターセプト可能なメソッドとインターセプターメソッドのシグネチャーが一致しません | |
ソースファイルは PDB で表現可能な 16,707,565 行の上限を超えているため、デバッグ情報が正しくなくなります | |
'is' または 'as' 演算子で静的型が使われています | |
構造体メンバーが 'this' または他のインスタンスメンバーを参照で返します | |
XML コメントに構文エラーがあります | |
marshal-by-reference クラス フィールドのアドレスは取得できません | |
テンプレートは静的な式である必要があります | |
'&' 演算子は Async メソッドのパラメーターやローカル変数には使用しないでください。 | |
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 代入します。 | |
これは、ターゲットよりも広い値のエスケープスコープを持つ値を ref 代入し、より狭いエスケープスコープの値がターゲットに割り当てられることを許可します。 | |
これは、より狭いエスケープスコープを持つ変数に式を ref 代入します。 | |
これは参照によってローカルのメンバーを返しますが、ref ローカルではありません。 | |
これは参照によってパラメーターを返しますが、ref パラメーターではありません。 | |
これは参照によってパラメーターを返しますが、現在のメソッドにスコープが設定されています。 | |
これは、ref パラメーターを介してパラメーターを参照返ししますが、安全に返せるのは return ステートメント内のみです。 | |
これは、ref または out パラメーターでないパラメーターのメンバーを参照によって返します。 | |
これは、現在のメソッドのスコープを持つパラメーターのメンバーを参照によって返します。 | |
これは、ref パラメーターを介してパラメーターのメンバーを参照返ししますが、安全に返せるのは return ステートメント内のみです。 | |
これは参照によってローカルを返しますが、ref ローカルではありません。 | |
これはアドレスの取得、サイズの取得、またはマネージ型へのポインターの宣言を行います。 | |
スローされる値は null かもしれません。 | |
型はインターフェースリストに既にリストされており、参照型の null 許容性が異なります。 | |
タイプは評価のみを目的としており、今後のアップデートで変更または削除される可能性があります。 | |
タイプは評価のみを目的としており、将来のアップデートで変更または削除される可能性があります。 続行するには、この診断を抑制してください | |
型パラメーターは XML コメント内に一致する typeparam タグがありません。 | |
型パラメーターは外部型の型パラメーターと同じ名前です | |
型およびエイリアスには「record」という名前を付けるべきではありません | |
XML フラグメントを含めることができません。 | |
割り当てられていないフィールド | |
割り当てられていない読み取り専用フィールド | |
null の可能性がある値をアンボックス化しています。 | |
未解決のシェーダー名 | |
未使用のローカル変数 | |
このコンテキストで変数を使用すると、参照変数が宣言スコープ外に Exposed される場合があります | |
廃止されたシンボルの使用 | |
廃止されたシンボルの使用(メッセージなし) | |
'dynamic' との互換性をテストするために 'is' を使うことは、本質的に 'Object' の互換性テストと同じで、すべての non-null 値に対して成功します。 | |
XML コメントに『Parameter』の 'param' タグがありますが、その名前のパラメーターはありません | |
XML コメントに『TypeParameter』の 'typeparam' タグがありますが、その名前の型パラメーターはありません | |
XML コメントに型パラメーターを参照する cref 属性があります。 | |
XML コメントが有効な言語要素に配置されていません。 |
制約違反 (11 インスペクション)
このカテゴリには、主に 警告の重要度レベルで、シンボル属性や JetBrains Rider のコードアノテーションなどに関する違反やその他の類似した問題を検出するコードインスペクションが含まれています。
インスペクション | |
|---|---|
基本型が必要です。 | |
BaseTypeRequired 属性はクラスとインターフェースのみをサポートします。 | |
一貫性のない命名 | |
名前空間がファイルの場所に対応していません。 | |
非 null 許容または必須メンバーがコンストラクターの終了時に初期化されていません | |
null 可能でないエンティティへの「null」割り当ての可能性 | |
「ValueRange」または「NonNegativeValue」属性の違反の可能性。 | |
契約アノテーション定義の問題 | |
必要な基本型が他の型と競合しています | |
'[BaseTypeRequired]' 属性で指定された型が他の型と競合しています | |
「CannotApplyEqualityOperatorAttribute」でマークされた型の値は「Equals()」で比較する必要があります |
エンティティフレームワーク (8 インスペクション)
このカテゴリは、 Entity Framework およびその派生型やメンバーの利用を検証するコードインスペクションをまとめています。
インスペクション | |
|---|---|
データベース関数はデータベース以外のコンテキストで呼び出してはいけません | |
関数は SQL へ変換できないため、データベースコンテキストで呼び出してはいけません | |
データベースに対する複数クエリの可能性(N+1問題) | |
関連エンティティへのデータベースクエリが複数発生する可能性(N+1問題) | |
文字列長が無制限であることによるパフォーマンス問題の可能性 | |
クエリが関連エンティティの不完全なデータを返す可能性があります | |
このプロパティで定義された関係が依存関係ループに寄与しています | |
ナビゲーションプロパティの利用で不完全なデータが返る可能性があります |
フォーマット (41 インスペクション)
このカテゴリのインスペクションは、 コードフォーマットの問題を検出します。
インスペクション | |
|---|---|
間違った空白行 (他の場所に空白行がありません) | |
間違った空白行 (空白行は他の場所では冗長なものです) | |
間違った空白行 (中括弧付近の空白行の数が正しくありません) | |
不適切なインデント (子ステートメント付近) | |
不適切なインデント (宣言括弧の周囲) | |
不適切なインデント (式括弧周辺) | |
不適切なインデント (名前空間括弧の周囲) | |
インデントが正しくありません(プリプロセッサディレクティブ付近) | |
不適切なインデント (ステートメント括弧の前後) | |
不適切なインデント (switch ステートメント付近) | |
不適切なインデント (インデントサイズが正しくありません) | |
不適切なインデント (インデントレベルが復元されていません) | |
不適切なインデント (他の場所でインデント / インデント解除が欠落しています) | |
不適切なインデント (他の場所で冗長なインデント / インデント解除があります) | |
不適切なインデント (タブ/スペースの不一致) | |
改行が正しくありません(リスト中のコンマの周囲) | |
改行が正しくありません(宣言括弧の周囲) | |
改行が正しくありません(空括弧の周囲) | |
改行が正しくありません (式中括弧の周囲) | |
改行が正しくありません(LINQ クエリ付近) | |
改行が正しくありません (丸括弧の周囲) | |
改行が正しくありません (ステートメント中括弧の周囲) | |
改行が正しくありません (他の場所で改行がありません) | |
改行が正しくありません (改行は他の場所で冗長なものです) | |
改行が正しくありません(1 行に複数のステートメント) | |
改行が正しくありません(1 行に複数の型メンバー) | |
間隔が正しくありません(属性の周囲) | |
誤った間隔 (中括弧の周囲) | |
誤った間隔 (コロンの周囲) | |
誤った間隔 (コンマの周囲) | |
間隔が正しくありません(ジェネリックの角括弧の周り) | |
誤った間隔 (メンバーアクセスシンボルの周囲) | |
誤った間隔 (演算子シンボルの周囲) | |
誤った間隔 (丸括弧の周囲) | |
誤った間隔 (セミコロンの周囲) | |
誤った間隔 (ステートメント内の角括弧の周囲) | |
誤った間隔 (キーワードと丸括弧の間) | |
誤った間隔 (複数のスペースは禁止されています) | |
誤った間隔 (他の場所でスペースがありません) | |
誤った間隔 (スペースは他の場所で冗長なものです) | |
間隔が正しくありません(ここではタブは禁止です) |
文法の問題 (4 インスペクション)
このカテゴリのインスペクションは、文字列リテラルやドキュメントコメントにおける 文法の問題を報告します。
インスペクション | |
|---|---|
コメントの文法エラー | |
マークアップ属性値の文法エラー | |
マークアップテキストの文法エラー | |
文字列リテラルの文法エラー |
言語使用の機会 (89 インスペクション)
このカテゴリには主に suggestion重要度レベルのコードインスペクションが含まれており、より高度な言語構文が使用できる場合に通知します。 これらのインスペクションは、古い言語バージョンの構文を検出し、より新しいバージョンの機能の利用を提案します。 ほとんどの対応言語では、言語バージョン は自動検出または手動で設定できます。
インスペクション | |
|---|---|
コレクション式に追加 | |
クラスをインスタンス化できません | |
条件式は null 合体で書き直すことができます | |
'as' 式の型チェックと続く null チェックを否定パターンマッチングに変換する | |
'as' 式の型チェックと続く null チェックをパターンマッチングに変換する | |
コンストラクターをメンバーイニシャライザーに変換する | |
コンストラクターをプライマリコンストラクターに変換する | |
デリゲート変数をローカル関数に変換する | |
拡張機能メソッドを拡張機能ブロックに変換する | |
'if' ステートメントを 'switch' に変換する | |
'await using' ステートメントまたは宣言に変換する | |
ラムダ式に変換 | |
静的クラスに変換 | |
'using' 宣言に変換 | |
ラムダ式をメソッドグループに変換する | |
否定 'is' 式を否定パターン付きの 'is' 式に変換する | |
「Nullable<T>」を「T?」へ変換する | |
プロパティを自動プロパティに変換する | |
プロパティを自動プロパティに変換する(可能な場合) | |
プロパティを private setter 付き自動プロパティに変換する | |
static メソッド呼び出しを拡張機能メンバー呼び出しに変換する(修飾された static メソッド呼び出しを拡張機能メンバー呼び出しに変換する) | |
static メソッド呼び出しを拡張機能メンバー呼び出しに変換する(同じクラスの static メソッド呼び出しを拡張メソッドの呼び出しに変換する) | |
Foreach ループは LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使われます | |
For ループは foreach ループに変換できます | |
'if' ステートメントは '?:' 式として書き直すことができます | |
'if' ステートメントは '??' 式として書き直すことができます | |
'if' ステートメントは '??=' 代入として書き直すことができます | |
「if-return」ステートメントは「return」ステートメントに書き換えることができます | |
インライン 'out' 変数宣言 | |
インライン一時変数 | |
オプションのパラメーターを導入する(非 private のアクセシビリティ) | |
オプションのパラメーターを導入する(private のアクセシビリティ) | |
ネストを減らすために 'if' ステートメントを反転する | |
「null」チェックを代入と結合する | |
ラムダ式/匿名メソッドを「静的」にできます | |
割り当てを避けるため、ラムダ式/匿名メソッドは「静的」にする必要があります | |
ラムダ式/匿名メソッドは含まれるコンテキストのキャプチャを持ってはいけません | |
逐語的文字列を使うことでリテラル長を短くできます | |
ループは LINQ 式に変換できます | |
'and' パターンをマージする | |
条件演算子 ?: を条件付きアクセスにマージする | |
否定された null/パターンチェックを複雑なパターンにマージする | |
ネストされたプロパティパターンをマージする | |
null/パターンチェックを複雑なパターンにマージする | |
null/パターン/値チェックを「or」/「and」パターンにマージする | |
連続したチェックを単一の条件付きアクセスチェックに統合する | |
既存の位置的分解パターンへ移動 | |
拡張機能ブロックに移動 | |
変数宣言をループ条件内へ移動 | |
foreach ループの一部は LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます | |
ループの本体の一部を LINQ 式に変換できます | |
文字列補間式を渡す | |
冗長なアクセサー本体 | |
冗長なスプレッド要素 | |
自動プロパティを計算されたプロパティに置き換える | |
if ステートメントを null 伝播コードに置き換える | |
追加のチェックを実行しないオブジェクトパターンを「var」パターンに置き換える | |
「SequenceEqual」を定数パターンに置き換える | |
「スライス」を範囲インデクサーに置き換える | |
「Substring」を範囲インデクサーに置き換える | |
「switch」ステートメントを「switch」式に置き換える | |
三項式を「switch」式に置き換える | |
'.OfType<T>()' に置き換える | |
「フィールド」キーワードに置き換える | |
プライマリコンストラクターパラメーターに置き換える | |
エイリアスを使用する | |
コレクション式構文を使用する | |
複合代入を使用する | |
複合代入を使用する | |
分解を使用する | |
分解を使用して変数を交換する | |
破棄代入を使用する | |
末尾からのインデックス式を使用する | |
'nameof' 式で列挙メンバー名を参照する | |
'nameof' 式で名前を参照する | |
'nameof' 式を使って文字列リテラル内の部分的な名前を参照する | |
'nameof' 式で型名を参照する | |
DependencyProperty の登録時に「nameof」式を使用する | |
可能な場合はオブジェクトまたはコレクションイニシャライザーを使用してください | |
位置分解パターンを使用する | |
生文字列を使用する | |
文字列補間式を使用する | |
型アノテーション構文を使用する | |
符号なし右 Shift 演算子 '>>>' を使用してください | |
UTF-8 文字列リテラルを使用する | |
「with」式を利用して匿名オブジェクトをコピーする | |
「with」式を利用してレコードをコピーする | |
「with」式を利用して構造体をコピーする | |
「with」式を利用してタプルをコピーする |
NUnit (30 インスペクション)
これらのインスペクションは NUnit テストに関連するコードの問題を検出します。
インスペクション | |
|---|---|
NUnit。 Async テストメソッドは Task または Task<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。 void テストメソッドでの冗長な期待結果。 | |
NUnit。 指定された属性値によって生成されるテストが多すぎます。 | |
NUnit。 指定された値はテストパラメーター型と互換性がありません。 | |
NUnit。 テストケースの Result プロパティが ExpectedResult と重複しています。 | |
NUnit。 テストケースの結果プロパティは廃止されました。 | |
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」式は冗長なものです | |
明示的な未チェックコンテキストでの '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 disposable に .ConfigureAwait(false) がありません | |
ライブラリコード内に .ConfigureAwait(false) がありません | |
シェバンディレクティブをファイルの先頭に移動してください | |
複数回連続して呼び出された 'OrderBy' | |
アクセスされていないフィールド (非公開アクセシビリティ) | |
アクセスされていないフィールド (private アクセス) | |
アクセスされていない位置指定プロパティ(非公開アクセス) | |
アクセスされていない位置指定プロパティ(private アクセス) | |
実装クラス内の非公開メンバーがインターフェースのデフォルト実装を隠します | |
GetHashCode() 内で参照されている非読み取り専用型メンバー | |
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' ステートメントによってキャプチャーされた変数の戻り値 | |
関数の戻り値の型は非 null にできます | |
[MustUseReturnValue] アノテーション付きメソッドの戻り値が使用されていません | |
[MustDisposeResource] アノテーション付きメソッドの戻り値が決して破棄されていません | |
プロパティの戻り値は呼び出し側で破棄する必要があります | |
'GetEnumerator' メソッド呼び出しの戻り値が決して破棄されていません | |
イテレーターの戻り値が使用されていません | |
純粋メソッドの戻り値が使用されていません | |
戻り値は破棄する必要がありますが、そのメソッドまたは関数に [MustDisposeResource] アノテーションがありません | |
安全なキャスト式は常に成功します | |
左オペランドが0の Shift 式は0になります | |
短命の「HttpClient」 | |
類似の匿名型が近くで検出されました | |
同様の式の比較 | |
列挙型の一部の値は 'switch' 式内で処理されず、デフォルトアームの例外で処理されます | |
列挙型の一部の値は 'switch' ステートメント内で処理されません | |
列挙型の一部の値は 'switch' ステートメント内で処理されず、デフォルトセクションで処理されます | |
ジェネリック型における静的フィールドまたは自動プロパティ | |
静的メンバーイニシャライザーが下の静的メンバーまたは他の部分を参照しています | |
文字列フォーマットメソッドの問題 | |
構造化ログメッセージ項目が重複しているか、大文字小文字のみが異なります | |
構造化メッセージテンプレートの問題 | |
同期プリミティブに対する疑わしいロック | |
ArgumentNullException に疑わしいパラメーター名があります | |
この型の左オペランドでの疑わしい Shift 数です | |
疑わしい型変換またはチェック | |
破棄風の名前を持つ変数の怪しい使用です | |
疑わしい「揮発性」フィールドの使用: 複合操作はアトミックではありません。 代わりに「Interlocked」クラスを使用できます。 | |
実行時に存在しない可能性のあるモジュールからのシンボル | |
末尾再帰呼び出しはループで置き換え可能です | |
『is』演算子の式は指定された型にはなりません | |
与えられた『is』演算子の式は常に指定された型です | |
最適なパフォーマンスを得るには、パラメーターに定数が必要です。 | |
このパターンは冗長で、実行時チェックは発生しません | |
ソース式は常に指定されたパターンと一致します | |
ソース式は指定されたパターンと決して一致しません | |
スレッド静的フィールドにイニシャライザーがあります | |
キャストを試みて null チェックを行う処理は型チェックで代用できます | |
型チェックとキャストをまとめることができます | |
型パターンとキャストはまとめて記述できます | |
未割り当てフィールド(非 private アクセシビリティ) | |
未割り当てフィールド(private アクセシビリティ) | |
割り当てられていない読み取り専用フィールド | |
未確認の CQRS エンティティ | |
未知の Razor レイアウト | |
不明な Razor セクション | |
<inheritdoc/> の使用が無効です | |
ルートレベルで <inheritdoc /> を使用して基底候補からドキュメントを継承する | |
コレクションの count プロパティを使用してください | |
書式文字列で書式指定子を使用してください | |
補間文字列で書式指定子を使用してください | |
型チェックで任意の null でない値が合格する場合は、型チェックの代わりに null チェックを使用する | |
型チェックで任意の null でない値が合格する場合は、型チェックの代わりに null チェックパターンを使用する | |
属性の代わりに null 許容アノテーションを使用する | |
無駄な算術演算 | |
ループ内で stackalloc を使用する | |
非変数修飾子式のプロパティに割り当てられた値が失われる可能性があります | |
「値」パラメーターは使用されていません | |
変数は 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' パラメーターの引数での冗長な明示的コレクション作成 | |
冗長な明示的な null 許容型の作成 | |
冗長な明示的位置プロパティ宣言 | |
配列生成時の冗長な明示サイズ指定 | |
冗長な明示的タプルコンポーネント名 | |
配列作成時の冗長な明示的な型 | |
冗長な固定ポインター宣言 | |
冗長なグローバル using ディレクティブ | |
冗長な 'IEnumerable.Cast<T>' または 'IEnumerable.OfType<T>' 呼び出し | |
冗長なラムダ式パラメーター型指定 | |
冗長なラムダシグネチャーの丸括弧 | |
冗長な名前修飾子 | |
null 不可の基本型で制約された型パラメーターの冗長な「notnull」制約 | |
別の null 不可の基本型で制約された型パラメーターの基本型制約における冗長な null 許容アノテーション | |
null 不可タイプ種別を持つ型パラメーターの基本型制約での冗長な null 許容アノテーション | |
null 不可の基本型で制約される型パラメーターの「class?」制約での冗長な null 許容アノテーション | |
冗長な 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 アクセシビリティ) | |
冗長なメソッドオーバーロード(private アクセス) | |
メソッド宣言の冗長な 'partial' 修飾子 | |
型宣言時の冗長な 'partial' 修飾子 | |
封印されたクラスの封印されたメンバー | |
タイプは使用されません(非公開アクセシビリティ) | |
タイプは使用されません(private アクセス) | |
型メンバーは基本型でアクセスされません (非公開アクセシビリティ) | |
型メンバーは基本型でアクセスされません (private アクセス) | |
型メンバーは使用されません(非公開アクセシビリティ) | |
型メンバーは使用されません(private アクセス) | |
型メンバーはオーバーライドでのみ使用されます (非公開アクセシビリティ) | |
型メンバーはオーバーライドでのみ使用されます (private アクセス) | |
列挙型の根底にある型は 'int' | |
未使用のラベル | |
未使用のローカル変数 | |
未使用のパラメーター (非公開アクセシビリティ) | |
未使用のパラメーター (private アクセス) | |
部分メソッドの未使用パラメーター | |
未使用の位置パラメーター | |
未使用の型パラメーター | |
仮想(オーバーライド可能な)メンバーはオーバーライドされません (非公開アクセシビリティ) | |
仮想(オーバーライド可能な)メンバーはオーバーライドされません (private アクセス) |
セキュリティ (1 インスペクション)
このカテゴリのインスペクションは、 Mend.io(英語) に従って脆弱性を持つ NuGet パッケージを報告します。
インスペクション | |
|---|---|
脆弱な API の使用 |
スペルの問題 (3 インスペクション)
これらのインスペクションは さまざまなコンテキストでタイプミスを検出します。
インスペクション | |
|---|---|
コメントのタイプミス | |
識別子のタイプミス | |
文字列リテラルのタイプミス |
構文スタイル (48 インスペクション)
このカテゴリのインスペクションでは、 コード構文スタイルの違反を検出します。 多くのコードインスペクションとは対照的に、これらのインスペクションは、 ページの JetBrains Rider 設定 Ctrl+Alt+S で設定された対応するコードスタイルルールにより、同じコード構造をコードの問題として検出するかどうかが決まります。 また、これらのインスペクションが検出した問題は コードのクリーンアップ を使って修正することもできます。
インスペクション | |
|---|---|
非明示的な優先順位を避けるため丸括弧を追加してください | |
静的メンバーの修飾子を追加または削除する | |
「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: 指定した型は構造体型でなければなりません | |
同名のイベント関数がすでに宣言されています | |
「コンポーネント」または「MonoBehaviour」から派生した型が必要です | |
「ScriptableObject」から派生した型が必要です | |
「ComponentLookup」型のフィールドは、使用前に更新する必要があります | |
ファイル名はアセンブリの名前と一致する必要があります | |
グループパスが定義されていません | |
メソッドシグネチャーが正しくありません | |
Odin のグループ属性タイプが正しくありません | |
メンバーが複数の 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 テストにおけるコンソール出力 |