JetBrains Rider 2024.1 ヘルプ

コード検査: 自動プロパティは取得専用にすることができます (private アクセス)

C# 6.0 から、get-only 自動プロパティを定義できます。これは(読み取り専用フィールドと同様に)コンストラクターまたは初期化子を介してのみ初期化できます。JetBrains Rider は、コンストラクター / 初期化子から初期化され、書き込みの使用がない自動プロパティの冗長 set アクセサーを検出して削除できます。

以下の例では、不変クラスを想定しています。そして、Name プロパティの値がコンストラクターの NULL 可能性をチェックされると、null チェックをしなくても安全に使用できます。ただし、プライベート setter は、プライベートメンバーの後でプロパティを変更しないことを保証するものではありません。変更を防ぐために、このプロパティを取得専用にすることをお勧めします。

public class Person { public string Name { get; private set; } // Auto-property can be made get-only public Person(string name) { Name = name ?? throw new ArgumentNullException(nameof(name)); } public override string ToString() { return $"NAME: {Name.ToUpper()}"; } }

ソリューション全体の分析が有効になっている場合、JetBrains Rider はあなたの自動プロパティの public setter の使用箇所を分析し、そのような使用箇所があなたのソリューションに見つからない場合にはそれらを取得専用にすることを提案します。

関連ページ:

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

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

コンテキストアクション

コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小さな変更を素早く導入できます。JetBrains Rider は、サポートされているすべての言語で数百のコンテキストアクションを提供します。完全なリストは、JetBrains Rider 設定のページお...

ソリューション全体の分析

JetBrains Rider のソリューション全体の分析により、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:JetBrains Rider 自身のインスペクションによって検出されたコンパイラーのエラー / 警告とエラー / 警告の両方で、ソリューション内のすべてのエラー / 警告を常に追跡できます。この機能は設計時コードインスペクションと連携して 2 つの利点をもたらします。ソリューションにエラー / 警告が含まれていないことを確認するために、す...

コード検査: 自動プロパティは取得専用にすることができます (非公開アクセシビリティ)

C# 6.0 から、get-only 自動プロパティを定義できます。これは(読み取り専用フィールドと同様に)コンストラクターまたは初期化子を介してのみ初期化できます。JetBrains Rider は、コンストラクター / 初期化子から初期化され、書き込みの使用がない自動プロパティの冗長アクセサーを検出して削除できます。以下の例では、不変クラスを想定しています。そして、プロパティの値がコンストラクターの NULL 可能性をチェックされると、null チェックをしなくても安全に使用できます。ただし...