VB.NET のコードインスペクション
VB.NET では、JetBrains Rider 2026.1 は 274 エラーを検出するインスペクション (構文エラー、未解決のシンボル、コンパイラーエラーなど。これらのインスペクションは設定変更や無効化はできません)と、280 独自のコードインスペクションを提供します。独自のインスペクションについては、 無効化や 重要度レベルの変更が可能です。
これらの コードインスペクションは、開いているすべてのファイルの 設計時にコードの問題を検出するのに役立ち、さらに 特定のスコープ内でコードの問題を見つけることもできます。
以下に、構成可能な VB.NET インスペクションを、 カテゴリ別にグループ化して示します。
コード通知 (1 インスペクション)
このカテゴリには、重要度レベルが低いコードインスペクションがまとめられています。
インスペクション | |
|---|---|
非アクティブなプリプロセッサーブランチ |
一般的なプラクティスとコードの改善 (118 インスペクション)
このカテゴリには、主にコードの可読性に影響する中程度の重大さの問題を検出するインスペクションがまとめられています。
インスペクション | |
|---|---|
階層のアノテーション複製 | |
自動プロパティは取得専用にすることができます (非公開アクセシビリティ) | |
自動プロパティは取得専用にすることができます (private アクセス) | |
代わりに参照等価をチェックする | |
代わりに参照等価をチェックする | |
クラスを密閉することができます (non-inheritable) (非公開アクセシビリティ) | |
クラスを密閉することができます (non-inheritable) (private アクセス) | |
非コンテナー型の宣言に対するコンテナーの null 許容性属性の使用 | |
ローカル変数またはフィールドを定数に変換する (非公開アクセシビリティ) | |
ローカル変数またはフィールドを定数に変換する (private アクセス) | |
プロパティを自動プロパティに変換する | |
可能であればプロパティを自動プロパティに変換する | |
プライベート setter でプロパティを自動プロパティに変換する | |
フィールドは読み取り専用にすることができます (非公開アクセシビリティ) | |
フィールドは読み取り専用にすることができます (private アクセス) | |
取得専用の自動プロパティは割り当てられません | |
メンバーはプライベートにすることができます (非公開アクセシビリティ) | |
メンバーはプライベートにすることができます (private アクセス) | |
メンバーを保護することができます (非公開アクセシビリティ) | |
メンバーを保護することができます (private アクセス) | |
メンバーは静的にすることができます (共有) (非公開アクセシビリティ) | |
メンバーは静的にすることができます (共有) (private アクセス) | |
メンバーまたは型を内部にすることができます (友達) | |
複数の null 可能な属性の使用 | |
void 型または値型の宣言での null 許容性属性の使用 | |
パラメーターは基本型で宣言できます | |
コンストラクターのパラメーターは基本型で宣言できる | |
パラメーターの型は IEnumerable<T> (非公開アクセシビリティ) | |
パラメーターの型は IEnumerable<T> (private アクセス) | |
誤った引数の可能性あり | |
GetType() への誤った呼び出しの可能性あり | |
GetType() への誤った呼び出しの可能性あり | |
プロパティは init のみにできます(非公開アクセシビリティ) | |
プロパティは init のみにできます(private アクセス) | |
ToList() を削除 | |
ToList() を削除 | |
FirstOrDefault($args$)に置き換えます | |
LastOrDefault($args$)に置き換えます | |
OfType<T>() に置き換える(OfType(Of ..)() で置き換え) | |
OfType<T>() に置き換える(OfType(Of ..)() で置き換え) | |
OfType<T>().Any() に置き換える(OfType(Of ..)().Any() で置き換え) | |
OfType<T>().Any() に置き換える(OfType(Of ..)().Any(..) で置き換え) | |
OfType<T>().Count() に置き換える(OfType(Of ..)().Count() で置き換え) | |
OfType<T>().Count() に置き換える(OfType(Of ..)().Count(..) で置き換え) | |
OfType<T>().First() に置き換える(OfType(Of ..)().First() で置き換え) | |
OfType<T>().First() に置き換える(OfType(Of ..)().First(..) で置き換え) | |
OfType<T>().FirstOrDefault() に置き換える(OfType(Of ..)().FirstOrDefault() で置き換え) | |
OfType<T>().FirstOrDefault() に置き換える(OfType(Of ..)().FirstOrDefault(..) で置き換え) | |
OfType<T>().Last() に置き換える(OfType(Of ..)().Last() で置き換え) | |
OfType<T>().Last() に置き換える(OfType(Of ..)().Last(..) で置き換え) | |
OfType<T>().LastOrDefault() に置き換える(OfType(Of ..)().LastOrDefault() で置き換え) | |
OfType<T>().LastOrDefault() に置き換える(OfType(Of ..)().LastOrDefault(..) で置き換え) | |
OfType<T>().Single() に置き換える(OfType(Of ..)().Single() で置き換え) | |
OfType<T>().Single() に置き換える(OfType(Of ..)().Single(..) で置き換え) | |
OfType<T>().SingleOrDefault() に置き換える(OfType(Of ..)().SingleOrDefault() で置き換え) | |
OfType<T>().SingleOrDefault() に置き換える(OfType(Of ..)().SingleOrDefault(..) で置き換え) | |
OfType<T>().Where() に置き換える(OfType(Of ..)().Where(..) で置き換え) | |
単一の代入に置き換えます | |
単一の代入に置き換えます | |
Any(..) への単一呼び出しに置き換えます | |
Count(..) への単一呼び出しに置き換えます | |
First(..) への単一呼び出しに置き換えます | |
FirstOrDefault(..) への単一呼び出しに置き換えます | |
Last(..) への単一呼び出しに置き換えます | |
LastOrDefault(..) への単一呼び出しに置き換えます | |
Single(..) への単一呼び出しに置き換えます | |
SingleOrDefault(..) への単一呼び出しに置き換えます | |
SingleOrDefault($args$)に置き換えます | |
戻り値の型は IEnumerable<T>(非公開アクセシビリティ)にできます | |
戻り値の型は IEnumerable<T>(private アクセス)にできます | |
条件演算子を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
式を簡略化する | |
「IIf」を簡素化する | |
文字列比較を明示的に指定します | |
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 アクセス) | |
配列作成式を使用する | |
配列作成式を使用する | |
代わりに First() を使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
Any() メソッドを使用する | |
IsInstanceOfType(..) メソッドを使用する | |
'TypeOf .. Is ..' 演算子 | |
'TypeOf .. Is ..' 演算子 |
コンパイラーの警告 (25 インスペクション)
このカテゴリのインスペクションは、コンパイル前にコンパイラー警告を検出します。
インスペクション | |
|---|---|
インスタンスを介した共有メンバーへのアクセス | |
Async メソッドに 'Await' 演算子がありません | |
この呼び出しは待機されないため、呼び出しが完了する前に現在のメソッドの実行が継続されます。 呼び出し結果に『Await』演算子の適用をご検討ください。 | |
フィールドは一度も使用されていません。 | |
関数は全てのコードパスで参照型の値を返しません | |
関数は全てのコードパスで構造体の値を返しません | |
メンバーがオーバーライド可能なメンバーを隠しています | |
Imports 'name' に指定された名前空間または型がパブリックメンバーを含んでいない、または見つかりません | |
名前空間は、このプロジェクトのデフォルト名前空間である必要があります。 | |
アクセスされていないフィールドです。 | |
アクセスされていないローカル変数です。 | |
等しい値型に対する冗長な DirectCast | |
X から Y への変換でランタイム エラーが発生する可能性があります | |
X から Y への変換でランタイム エラーが発生することがあります | |
XML コメントに構文エラーがあります | |
パラメーターに適用された CallerArgumentExpressionAttribute は自己参照のため効果がありません | |
パラメーターへの CallerArgumentExpressionAttribute の適用は効果がありません。 無効なパラメーター名で適用されています。 | |
タイプは評価のみを目的としており、将来のアップデートで変更または削除される可能性があります。 続行するには、この診断を抑制してください | |
割り当てられていないフィールド | |
割り当てられていない読み取り専用フィールド | |
未使用のローカル変数 | |
廃止されたメンバーを使用しています | |
廃止されたメンバーを使用しています(メッセージなし) | |
変数は値が割り当てられる前に使用されています | |
XML コメントに解決できない 'cref' 属性を持つタグがあります |
制約違反 (2 インスペクション)
このカテゴリには、主に 警告の重要度レベルで、シンボル属性や JetBrains Rider のコードアノテーションなどに関する違反やその他の類似した問題を検出するコードインスペクションが含まれています。
インスペクション | |
|---|---|
一貫性のない命名 | |
名前空間がファイルの場所に対応していません。 |
文法の問題 (4 インスペクション)
このカテゴリのインスペクションは、文字列リテラルやドキュメントコメントにおける 文法の問題を報告します。
インスペクション | |
|---|---|
コメントの文法エラー | |
マークアップ属性値の文法エラー | |
マークアップテキストの文法エラー | |
文字列リテラルの文法エラー |
言語使用の機会 (7 インスペクション)
このカテゴリには主に suggestion重要度レベルのコードインスペクションが含まれており、より高度な言語構文が使用できる場合に通知します。 これらのインスペクションは、古い言語バージョンの構文を検出し、より新しいバージョンの機能の利用を提案します。 ほとんどの対応言語では、言語バージョン は自動検出または手動で設定できます。
インスペクション | |
|---|---|
static メソッド呼び出しを拡張機能メンバー呼び出しに変換する(修飾された static メソッド呼び出しを拡張機能メンバー呼び出しに変換する) | |
Foreach ループは LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使われます | |
ループは LINQ 式に変換できます | |
foreach ループの一部は LINQ 式に変換できますが、別の 'GetEnumerator' メソッドが使用されます | |
ループの本体の一部を LINQ 式に変換できます | |
文字列補間式を渡す | |
文字列補間式を使用する |
潜在的なコード品質問題 (67 インスペクション)
このカテゴリには、主に エラーまたは 警告レベルで重大な問題(コードの臭い)を検出するインスペクションが含まれます。 このカテゴリには ローカライゼーション支援を保証するインスペクションも含まれます。
インスペクション | |
|---|---|
'?:' 式は真偽両方のブランチが同一です | |
[ThreadStatic] はインスタンス フィールドでは機能しません | |
抽象または仮想(オーバーライド可能)イベントが呼び出されることはありません | |
破棄されたキャプチャー変数へのアクセス | |
クロージャ内の foreach 変数へのアクセス | |
変更されたキャプチャー変数へのアクセス | |
階層内のアノテーションの競合 | |
自動プロパティ アクセサーは決して使用されません(非公開アクセシビリティ) | |
自動プロパティ アクセサーは決して使用されません(private アクセス) | |
暗黙的なデフォルトパラメーターを持つ基底メンバーの呼び出し | |
'base.Equals(...)' への呼び出しは参照等値です | |
プロパティを解決できません | |
リソースを解決できません | |
リソース項目を解決できません | |
テキスト引数でシンボルを解決できません | |
クラスはインスタンス化されません(非公開アクセシビリティ) | |
クラスはインスタンス化されません(private アクセス) | |
コレクションの内容が照会されることはありません(非公開アクセシビリティ) | |
コレクションの内容が照会されることはありません(private アクセス) | |
コレクションは更新されません(非公開アクセシビリティ) | |
コレクションは更新されません(private アクセス) | |
書式文字列の書式指定子の後に右中括弧を使わないでください | |
要素はローカライズ可能です | |
浮動小数点数の等値比較 | |
イベントは決して購読されません(非公開アクセシビリティ) | |
イベントは決して購読されません(private アクセス) | |
イベントが呼び出されなかった | |
例外の再スローが意図されている可能性あり | |
呼び出し元情報属性を持つパラメーターに明示的な引数が渡された | |
関数は戻り値を返しません | |
'GC.SuppressFinalize' はデストラクターのない型で呼び出されます | |
イテレータは戻り値を返しません | |
ローカル変数がメンバーを隠しています | |
アクセスされていないフィールド (非公開アクセシビリティ) | |
アクセスされていないフィールド (private アクセス) | |
アクセスされていない位置指定プロパティ(非公開アクセス) | |
アクセスされていない位置指定プロパティ(private アクセス) | |
GetHashCode() 内で参照されている非読み取り専用型メンバー | |
'Object.ReferenceEquals' は常に false です。値型で呼び出されているためです | |
演算子 'is'/'Type Of ... Is ...' を使用できます | |
'out' パラメーターが終了時に割り当てられていません | |
オーバーライドされた GetHashCode が base の 'Object.GetHashCode()' を呼び出します | |
パラメーターがメンバーを隠します | |
Double-Check Locking パターンの実装が間違っている可能性があります。 チェックされたフィールドへの複数の書き込みアクセスが可能 | |
Double-Check Locking パターンの実装が間違っている可能性があります。 チェックされたフィールドへの読み取りアクセス | |
無限継承の可能性があります | |
複数回列挙の可能性があります | |
「Me」への書き込みの可能性があります | |
おそらく不純な構造体メソッドが読み取り専用変数で呼び出されます: 呼び出し前に常に構造体値がコピーされます | |
純粋メソッドの戻り値が使用されていません | |
同様の式の比較 | |
ジェネリック型における静的フィールドまたは自動プロパティ | |
静的メンバーイニシャライザーが下の静的メンバーまたは他の部分を参照しています | |
文字列フォーマットメソッドの問題 | |
構造化ログメッセージ項目が重複しているか、大文字小文字のみが異なります | |
構造化メッセージテンプレートの問題 | |
疑わしい型変換またはチェック | |
実行時に存在しない可能性のあるモジュールからのシンボル | |
'l' サフィックスは数字 '1' と混同されやすいです | |
スレッド静的フィールドにイニシャライザーがあります | |
型チェックとキャストをまとめることができます | |
未割り当てフィールド(非 private アクセシビリティ) | |
未割り当てフィールド(private アクセシビリティ) | |
割り当てられていない読み取り専用フィールド | |
書式文字列で書式指定子を使用してください | |
非変数修飾子式のプロパティに割り当てられた値が失われる可能性があります | |
「void」メソッドは [Pure] 属性のアノテーションが付けられています |
コードの冗長性 (23 インスペクション)
このカテゴリのコードインスペクションは、コードの可読性やスタイルに影響し、安全に削除できる冗長性やデッドコードを検出します。 一部のコードの冗長性は自動的に修正できず、それらのクイックフィックスは対話モードで実行され、ユーザー入力が必要です。 ただし、冗長性の多くはユーザー操作なしで、 スコープ内の修正 または コードのクリーンアップ を使用して修正できます。
インスペクション | |
|---|---|
代入は使用されていません | |
明示的な 'value' パラメーター宣言は冗長なものです | |
式は常に「true」または常に「false」です | |
'Yield' ステートメントのない Iterator 関数 | |
複数行の 'If' ステートメントにおけるキーワード 'Then' は冗長なものです | |
引数なしプロパティの括弧は冗長なものです | |
属性に引数がない場合、丸括弧は冗長です | |
呼び出し元引数式パラメーターに渡された冗長な引数 | |
配列の下限指定は冗長なものです | |
冗長なキャスト | |
冗長な空の 'Case Else' ステートメント | |
配列生成時の冗長な明示サイズ指定 | |
冗長な『Me.』修飾子 | |
冗長な『MyBase.』修飾子 | |
冗長な『MyClass.』修飾子 | |
論理条件式の冗長なオペランド | |
冗長な修飾子 | |
冗長な丸括弧を削除する | |
到達不能コード | |
未使用の import 句 | |
暗黙の 'ByVal' 修飾子を使用する | |
暗黙的に型指定された変数宣言を使用する | |
暗黙的に型指定された変数宣言を使用する(明示的) |
シンボル宣言の冗長性 (30 インスペクション)
このカテゴリには、空および未使用のシンボル宣言を検出するための、主に 警告重要度レベルのコードインスペクションが含まれています。
インスペクション | |
|---|---|
継承されない仮想(オーバーライド可能)メンバーを持つクラス(非公開アクセシビリティ) | |
継承されない仮想(オーバーライド可能)メンバーを持つクラス(private アクセス) | |
エンティティは、その名前の取得目的のみに使用されています(非 private アクセシビリティ) | |
エンティティは、その名前の取得目的のみに使用されています(private アクセス) | |
メソッドの戻り値は使用されていません(非公開アクセシビリティ) | |
メソッドの戻り値は使用されません(private アクセス) | |
アクセスされていないローカル変数です。 | |
アクセスされないローカル変数は「out」パラメーター値を破棄するためにのみ使用されます | |
アクセスされていないプライマリコンストラクターパラメーター | |
パラメーターは前提条件チェックにのみ使用されます (非公開アクセシビリティ) | |
パラメーターは前提条件チェックにのみ使用されます (private アクセス) | |
パラメーター出力値は常に破棄されます (非公開アクセシビリティ) | |
パラメーター出力値は常に破棄されます (private アクセス) | |
タイプは使用されません(非公開アクセシビリティ) | |
タイプは使用されません(private アクセス) | |
型メンバーは基本型でアクセスされません (非公開アクセシビリティ) | |
型メンバーは基本型でアクセスされません (private アクセス) | |
型メンバーは使用されません(非公開アクセシビリティ) | |
型メンバーは使用されません(private アクセス) | |
型メンバーはオーバーライドでのみ使用されます (非公開アクセシビリティ) | |
型メンバーはオーバーライドでのみ使用されます (private アクセス) | |
未使用のラベル | |
未使用のローカル変数 | |
未使用のパラメーター (非公開アクセシビリティ) | |
未使用のパラメーター (private アクセス) | |
部分メソッドの未使用パラメーター | |
未使用の位置パラメーター | |
未使用の型パラメーター | |
仮想(オーバーライド可能な)メンバーはオーバーライドされません (非公開アクセシビリティ) | |
仮想(オーバーライド可能な)メンバーはオーバーライドされません (private アクセス) |
スペルの問題 (3 インスペクション)
これらのインスペクションは さまざまなコンテキストでタイプミスを検出します。
インスペクション | |
|---|---|
コメントのタイプミス | |
識別子のタイプミス | |
文字列リテラルのタイプミス |