Действительно, в настоящее время это невозможно сделать.
Мы понимаем, что в C # 3 мы создали некоторый философский оксюморон. Дизайн LINQ в значительной степени пропитан традиционным неизменяемым функциональным стилем программирования - выполнение откладывается, запросы представлены неизменяемыми монадами, деревья выражений неизменны и т. Д.
И все же в то же время инициализаторы объектов, инициализаторы коллекций и автоматические свойства поощряют традиционный стиль программирования на основе изменяемых компонентов. Похоже, что мы идем в обоих направлениях, что свидетельствует о природе C #; это прагматичный язык программирования, поддерживающий множество различных стилей программирования.
Однако, поскольку мы все большие поклонники неизменного стиля программирования и верим, что этот стиль принесет дивиденды, упростив обеспечение корректности многопоточных приложений в будущих повсеместных многоядерных архитектурах, мы определенно заинтересованы в поисках способа обуздать введенную нами изменчивость. Автозаполнение только для чтения - один из очевидных способов сделать это; маленький шаг, но хороший.
Тем не менее, мы еще даже не выпустили C # 4 и не объявили, что после этого появятся какие-либо новые языковые функции. Вы должны относиться ко всем моим размышлениям о гипотетических характеристиках необъявленных продуктов как к предположениям «только для развлечения», а не как к обещаниям или объявлениям.
person
Eric Lippert
schedule
08.10.2009
public readonly MyType MyProperty { get; private set; }
сработает), но в итоге я использовал синтаксис в конце вашего вопроса. - person Blixt   schedule 08.10.2009