コードインスペクション: 自動プロパティは get 専用(private アクセス)にできます
C# 6.0 以降では、get 専用の自動プロパティを定義できます。これは、 readonly フィールドと同様に、コンストラクターまたはイニシャライザーによってのみ初期化できます。 JetBrains Rider は、コンストラクターまたはイニシャライザーから初期化され、書き込みの使用がない自動プロパティの冗長な set アクセサーを検出し、削除を支援します。
次の例では、イミュータブル クラスが想定されており、 Name プロパティの値はコンストラクターで null 許容性がチェックされると、その後 null チェックをせずに安全に使用できます。 ただし、private 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 の使用箇所も分析し、ソリューション内でそのような使用箇所が見つからなければ、get-only にすることを提案します。
2026 年 6 月 12 日