わんくまの掲示板「プロパティとフィールドの違い」の質問から飛び火しているみたいなので、私も便乗して..
元:http://f57.aaa.livedoor.jp/~jeanne/bbs/faq.cgi?mode=al2&namber=9549
C#では、クラスの属性をフィールドと呼び、この属性の操作としてプロパティとpublicフィールドを用意している。
つまり、フィールドの公開の仕方が2種類あることになります。
私の場合は、クラスの属性は、privateフィールドとして非公開にして、必要になったときにプロパティとして
公開するようにしています。
また、値を返却するときなんかにいちいちフィールドとしてもうけないで get を利用してプロパティで公開して
います。
プロパティの利点としては、下記の2点があるのではないかと考えています。
・フィールドの型と違う型に対しても対応できる。
・値の範囲チェック等の妥当チェックを自分自身でできる。
欠点としては、作成する必要があるがこれは自動化で対応できるのであまり欠点とは考えていない。