泥庭

2011年4月18日

構造体の自動実装プロパティー

Filed under: .NET, 未分類 — タグ: — yone64 @ 11:56 PM

構造体のコンストラクタで、自動実装プロパティーを初期化するとコンパイルエラーが発生します。

struct Class1
{
    public Class1(int param1)
    {
        MyProperty = param1;
    }

    public int MyProperty { get; set; }
}

自動的に実装されたプロパティ ‘Class1.MyProperty’ のバッキング フィールドは、コントロールが呼び出し元に返される前に完全に割り当てられている必要があります。コンストラクター初期化子から既定のコンストラクターを呼び出すことを検討してください。

すべてのフィールドが割り当てられるまでは、’this’ オブジェクトは使用できません。

このコンパイルエラーは、明示的にデフォルトコンストラクタを呼び出すことで回避可能できます。
#知らんかった

struct Class1
{
    public Class1(int param1) : this()
    {
        MyProperty = param1;
    }

    public int MyProperty { get; set; }
}

広告

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。