Константная корректность в C #с расширенными типами

Имея опыт работы с C++ и пытаясь изучить C #, одно из самых досадных языковых упущений, с которыми я сталкивался, — это эквивалент ключевого слова const.

Итак, я пытался найти шаблон, который я могу использовать для достижения константной корректности в C #.

В этом ответе есть интересное предложение :создать интерфейс только для чтения для всех ваших типов. Но, как отметил Мэтт Круикшенк в комментариях, это становится проблематичным, если в вашем классе есть коллекции или другие богатые типы. В частности, если у вас нет контроля над типом и вы не можете реализовать интерфейс только для чтения -.

Существуют ли какие-либо шаблоны или решения, которые могут работать с богатыми типами и коллекциями, или мы вынуждены в C #просто делать копии? Не лучше ли вообще отказаться от константной корректности в C #?

8
задан Community 23 May 2017 в 10:34
поделиться