http://f57.aaa.livedoor.jp/~jeanne/bbs/faq.cgi?mode=al2&namber=9549 より
フィールドは一切公開せず、プロパティで包んであげて公開するのが望ましいとされているが、律儀に全てに適応させるのは、はっきり言って無駄だと思う。
public class TestClass {
private int _id;
private string _name;
private Data _data;
public int ID {
get { return _id; }
set { _id = value; }
}
public string Name {
get { return _name; }
set { _name = value; }
}
public Data Data {
get { return _data; }
set { _data = value; }
}
}
こんなコードは労力の無駄。フィールドとプロパティに何の違いがあろうか。「売り物のライブラリでも作っているんですか?」と言いたい。アプリケーションを書いていていつでもコードが触れる状態ならば、必要になった時に初めてプロパティにすれば良いのだ。
しかし、
http://blogs.wankuma.com/shuujin/archive/2006/08/13/36108.aspx
のように、プロパティしか引っ張ってこない奴がいるから厄介だ。私は一種の不具合だとすら思う。リフレクションでフィールドとプロパティを区別しないで欲しい。
後は、getter しか設けたくないならプロパティにすれば良い。