Здравствуйте, SomeOne_TT, Вы писали:
SO_>В С++ использование const везде, где только можно, является хорошим тоном.
SO_>Почему в C# нет подобного отношения к readonly? Не наблюдаю россыпей readonly на полях SO_>типа List/Dictionary, хотя там они естественны.
Дело в том, что readonly в C# действует только на верхнем уровне,
для ссылочных типов таким образом можно лишь защитить ссылку на список, но не значения.
Можете прочитать об этом у Андрей Александреску в книге язык программирования Ди.
Там есть такая фраза, что если ваш модификатор не защищает объект на всю глубину от изменений,
то он имеет силу комментария. К сожалению, архитектурно, C# не защищает поля любой вложенности от изменения.
Думаю, поэтому никто и не пользуется, т.к. защита очень слабая, хотя я стараюсь все же помечать этим модификатором,
т.к. это упрощает понимание кода.