は時々私はそうのような読み取り専用のメンバーと定義されたクラスを参照してください読み取り専用プロパティ:読み取り専用フィールド対
class Foo
{
public Foo(string bar)
{
Bar = bar;
}
public string Bar { get; private set; }
}
第二の例:
class Foo
{
private readonly string bar;
public Foo(string bar)
{
this.bar = bar;
}
public string Bar => bar;
}
と、私はそうのような読み取り専用のメンバーと定義されたクラスを参照してください他の回私にはもっと読みやすく/簡潔に見えますが、最初の例ではreadonly
のバッキングフィールドを明示的に定義する正当な理由があるのだろうかと思っていましたか?
2つの例の詳細な分析を行い、理想的にはCLRの実際に何が起こっているのかを理解することができます。
実際、第2版は非常に異なっています。同等のバージョンは 'public string Bar {get;}'となります。 'public string Bar {get;プライベートセット; } 'は読み込み専用ではなく、公的に設定可能ではありません。 –
Scott、あなたのコメントは答えになるはずです。よく言った – Trey
あなたの最初の例は私のためにコンパイルされません。 – user1620220