Введение
В течение некоторого времени я использовал модификатор readonly почти для всех полей класса. Я использую его для членов List , IDisposeable членов, целых, строк и т. Д. ... всего, кроме типов значений, которые я намерен изменить. Я склонен делать это, даже когда я обычно хотел бы обнулить член в Dispose (). ИМХО Преимущества отсутствия необходимости в операторах if для проверки на нулевые или удаленные условия значительно перевешивают «потенциал» для проблем в объектах, которые «могли бы» быть устранены несколько раз.
Вопрос
Когда вы используете readonly, или вы?
Есть ли у вас или вашей компании какие-либо передовые практики и / или стандарты кодирования, касающиеся использования только для чтения?
Мне любопытно услышать ваши мысли о следующем учебном классе, является ли общая концепция хорошей практикой или нет?
class FileReaderWriter : IFileReaderWriter, IDisposable
{
private readonly string _file;
private readonly Stream _io;
public FileReaderWriter(string path)
{
_io = File.Open(_file = Check.NotEmpty(path), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
}
public void Dispose() { _io.Dispose(); }
...
}