I agree. What I meant to say is that every property that's relevant to the classes' user
should have some way of getting and maybe setting it. Basically, I regard all
properties as implementation details and private and they should only be exposed (via accessors) if that's useful. I certainly didn't mean that all properties should have a direct public interface. A classes' user doesn't have to know or care if a method is just a plain accessor or something else. All that matters is that the public API allows the user to do everything relevant and hide everything that's not.