読み取り専用のパブリックフィールドが必要な場合がありますか。取得専用の自動実装プロパティ?
public class Foo
{
public readonly string Hello;
public string Hello2 { get; }
}
どちらもコンストラクタの間にのみ設定でき、クラスの外では読み取り専用アクセスを提供します。少し疲れているので、何かが足りない可能性があります。
1つの理由は、データバインディングのためです。netはプロパティへのバインディングを実装しますが、パブリックフィールドへのバインディングは実装しません。
フィールドではなくプロパティにすることは、インターフェイスで使用できることを意味します。
正確な実装(自動プロパティは実際にはあまり実装されていませんが...)も抽象化されているため、将来的には、互換性を壊す(コンパイルする)ことなく、フィールドの組み合わせに基づいて実装できます。