Только для чтения объект эквивалентен инициализации без readonly
. Основное отличие состоит в том, что метадату IL будет задан бит initonly в поле.
Nitpick: и ваше расширение using
и lock
неверно в некоторых тонах.
Версия lock
неверна, поскольку ее расширение зависит от используемой вами версии компилятора CLR и C #. Компилятор C # 4.0 в сочетании со средой выполнения 4.0 использует шаблон Enter(object, ref bool)
вместо простого Enter(object)
Версия using
немного неверна, потому что выглядит немного ближе к этому в блоке finally
if (disposable != null) {
((IDisposable)disposable).Dispose();
}