ReSharper 2025.3 ヘルプ

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

C# 6.0 から、get-only 自動プロパティを定義できます。これは(読み取り専用フィールドと同様に)コンストラクターまたは初期化子を介してのみ初期化できます。ReSharper は、コンストラクター / 初期化子から初期化され、書き込みの使用がない自動プロパティの冗長 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()}"; } }

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

2024 年 2 月 11 日

関連ページ:

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

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

コンテキストアクション

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

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

ソリューション全体の分析により、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語 C++ を除くでエラーが検出されます。プロジェクトにそのようなファイル (JavaScript、CSS、HTML など) が含まれている場合、ソリューション全体の分析は、実行時にしか検出できないエラーを見つけるのに役立ちます。ReSharper のソリューション全体の分析では、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:ReSharper 自...

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

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