V>ненужно впадать в ООП эктаз.
V>как полный отказ от прямого доступа к полям так и только прямой доступ — две крайности.
V>активно используй и то и другое.
Ну активно-не активно, а в классах верхнего уровня иерархии (вроде страниц ASP.NET)
не вижу смысла жёстко ограничивать использование открытых полей.
... << RSDN@Home 1.2.0 alpha rev. 619>>
T>В чём преимущество
T>T>class Base {
T> private int counter = 0;
T> public int Counter{ get counter; set counter; }
T>}
T>
T>перед
T>T>class Base {
T> public int Counter = 0;
T>}
T>
T>?
Одно "преимущество" назову. Когда пытаешься прибиндить какой-нибудь контрол к коллекции объектов (biz obj-s) — например, датагрид — то можно легко прибиндивать колонки к названиям свойств (properties). К полям (fields) прибиндить не удается.
Это конечно обходится, но через одно место — при помощи доп. аттрибутов, и еще чего-то (не на то рассчитано).