Czy można wymusić, aby auto-własność korzystała z pola tylko do odczytu?

Mój projekt zawiera dużą liczbę klas o właściwościach, których pole pomocnicze jest zaznaczone tylko do odczytu, ponieważ są one ustawione tylko podczas budowy. Jako styl, lubię korzystać z auto-właściwości, ponieważ eliminuje wiele standardowych kodów i zachęca do korzystania z elementu właściwości, a nie z pola kopii zapasowej. Jednak, gdy używam auto-właściwości, tracę „readonly-ness” mojego zaplecza. Rozumiem, że kompilator / środowisko wykonawcze jest w stanie skorzystać z pewnych ulepszeń wydajności, gdy pole jest zaznaczone w ten sposób, więc chciałbym móc oznaczyć moją właściwość automatyczną jako tylko do odczytu, coś takiego:

<code>[ReadOnly]
public string LastName { get; }
</code>

zamiast

<code>private readonly string _LastName;
public string LastName 
{ 
    get
    { 
        return _LastName;
    }
}
</code>

Czy jest już dostępny jakiś mechanizm, aby to zrobić? Jeśli nie, czy zysk z niestandardowego pola kopii jest naprawdę warty zachodu?

Wydaje się, że ujawnienie pola jako publicznego jest inną opcją. Wydaje się, że niewłaściwe jest ujawnianie pola w ten sposób. to znaczy

<code>public readonly string LastName;
</code>

questionAnswers(6)

yourAnswerToTheQuestion