< 連番のプロパティを持つ Items を Grid 上に整列させるコンバータ | 続:添付プロパティにしちゃえばいいんじゃない ? >

January 28, 2009

NULL 許容型 (Nullable)

null 許容型って、間違えやすいけど参照型になるわけじゃないんだ。値型だけど null 値を持ちうるようになるだけ。

だからこんなプログラムの実行結果は…

struct Data
{
    public string str;
    public int number;
}

class Program
{
    static void Main (string [] args)
    {
        Data data1;
        Data? data2 = null;

        data1.number = 1;
        data1.str = "最初の値";

        data2 = data1;
        Console.WriteLine ("{0}:{1}", data2.Value.number, data2.Value.str);

        data1.number = 2;
        data1.str = "値を変更してみた";

        Console.WriteLine ("{0}:{1}", data2.Value.number, data2.Value.str);
    }
}

こうなる。

1:最初の値
1:最初の値
続行するには何かキーを押してください . . .

それと、null を代入しても、おんなじだけのスタックを消費します。値型だから。

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/2307

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?