JetBrains Rider 2024.1 ヘルプ

コード検査: コレクションの内容が照会されることはありません (private アクセス)

JetBrains Rider はあなたのコードで作成されたコレクションへのアクセスを分析し、コレクションが更新されてもその内容が決して使用されない場合は警告します。例:

public class CollectionUsage { private readonly List<string> _matchedStrings = new List<string>(); public void CheckIfStringMatches(string str) { //if str matches some condition _matchedStrings.Add(str); } }

すべての標準コレクションタイプは、デフォルトでこの方法で分析されます。必要に応じて、この分析を IEnumerable から派生したカスタムコレクションに適用することもできます。この場合、JetBrains Rider に、コレクションの public メソッドの呼び出しがコレクションのコンテンツにどのように影響するかを伝える必要があります。そのためには、コレクションクラスのメソッドを [CollectionAccessAttribute] でマークします。[CollectionAccessAttribute] には、4 つのフラグのいずれかが必要です: NoneReadModifyExisitingContentUpdatedContent (最後の 2 つのフラグの違いは、UpdatedContent は、マークされた関数がコレクションに新しい要素を追加できることを意味します)。これを説明する簡単な例を次に示します。

Using JetBrains.Annotations to improve code analysis of collection access

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...

コレクションアクセス分析

JetBrains Rider は、コレクションアイテムの値を分析するだけでなく、使用する各コレクション全体も分析します。このコレクションへの読み取りアクセスがあっても、コレクションが満たされない、変更されない場合は警告しますコレクションが決して読み込まれない場合すべての標準コレクションタイプは、デフォルトでこの方法で分析されます。必要に応じて、この分析をから派生したカスタムコレクションに適用することもできます。この場合、JetBrains Rider に、コレクションの public メソッド...

コードアノテーション属性

フレームワークは、以下で説明する多くの属性を提供します。これらの属性をコードで使用するには、ソースコードのアノテーションセクションの説明に従ってを参照する必要があります。アノテーション属性:CanBeNullAttribute マークされた要素の値がになることがあることを示します。そのため、使用前にのチェックが必要です。サンプル [CanBeNull] object Test() => null; void UseTest() { var p = Test(); var s = p.ToSt...