プロパティへの代入がコンストラクタ内のみなら、そのプロパティに private set を定義する必要はない
using System; class Person { public string Name { get; } // 代入はコンストラクタでのみ。private set; は不要 public int Age { get; } public Person(string name, int age) { Name = name; Age = age; } } class Program { public static void Main() { var p = new Person("Bob", 23); Console.WriteLine($"{p.Name} {p.Age}"); // Bob 23 // コンパイルエラー: The Property 'Person.Name' has no setter // p.Name = "Alice"; } }