nullableの変更

Tech・Ed 2005 Yokohama初日。

C# 2.0 and IDE Tips & Tricks Part I
C#2.0はそれなりに分かっているつもりだったのですが、C#コンパイラ開発現場の方が講師でしたので、こぼれ話に期待して参加しました。(笑)

ネタにしても構わないとのことでしたので、お言葉に甘えてnullableの変更について。(^^;

using System;

class Program
{
    static void Main(string[] args)
    {
        int? n = null;
        object o = n;

        Console.WriteLine(n == null);
        // nullable型のnullをboxingしてもnullにならない
        Console.WriteLine(o == null);
    }
}

/* 結果
True
False
 */

VS2005 β2では上記のようにnullable型でnullなものをboxingするとnullにならなかったのですが、修正すべきだという判断が入り、この時期にしては大きな修正を行ったそうです。修正後では、boxingするとnullなるそうです。