Wie man eine schreibgeschützte Eigenschaft implementiert

Ich muss ein @ implementierschreibgeschütz Eigenschaft auf meinem Typ. Darüber hinaus wird der Wert dieser Eigenschaft im Konstruktor festgelegt und nicht geändert (ich schreibe eine Klasse, die benutzerdefinierte Routing-UI-Befehle für WPF verfügbar macht, aber das spielt keine Rolle).

Ich sehe zwei Möglichkeiten:

class MyClass
{
    public readonly object MyProperty = new object();
}
class MyClass
{
    private readonly object my_property = new object();
    public object MyProperty { get { return my_property; } }
}

Mit all diesen FxCop-Fehlern, die besagen, dass ich keine öffentlichen Member-Variablen haben sollte, scheint es, dass der zweite der richtige Weg ist, dies zu tun. Richtig

Gibt es in diesem Fall einen Unterschied zwischen einer get only-Eigenschaft und einem read only-Member?

Ich würde mich über Kommentare / Ratschläge / etc. freuen.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage