自動プロパティと構造体
C#3.0の自動プロパティ、便利ですね。「this._foo = value;」や「return this._foo;」のような冗長で儀式のような表現に邪魔されずにコードを見渡せるようになりました。
しかし、この自動プロパティ。構造体じゃ使えないんですよね、多分。
struct Foo { // コンストラクタ public Foo(int bar) { this.Bar = bar; // !!! } // 自動プロパティで書いたプロパティ public int Bar { get; set; } }
!!!のところで、「すべてのフィールドが割り当てられるまでは、'this' オブジェクトは使用できません。」って言われちゃいます。this外しても一緒。
多分クラスが参照型なのに対して、構造体は値型なので、
値が確定してないからインスタンスは存在してないよー→thisなんてまだ存在しないよー
ということなんだと思います。
結構いい加減なこと言ってますね。気にしないでください。