ZerOx4Cの日記だったもの

インポートだけしました

自動プロパティと構造体

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なんてまだ存在しないよー
ということなんだと思います。


結構いい加減なこと言ってますね。気にしないでください。