J
Jon Skeet [C# MVP]
Okay. Seems like kind of an random implementation artifact, and not
some deep language reason.
Not a language reason - a design reason. What data a class chooses to
provide access to is part of the encapsulated interface. How it chooses
to store that data *should* be a hidden implementation detail. Exposing
a field exposes that implementation detail.
In situations where you just want people to be able to access the data
(in simple structs only for holding data etc.), exactly the situations
in which you would make "simple properties" as I called them, and in
which you are fairly sure that this will never change, properties are
just syntactic clutter, IMO. That might change with C# 3.0.
"Syntactic clutter" wouldn't change behaviour though, would it?
Changing a field to a property or vice versa certainly can.