What is this program's output and why?
using System;
public class NullableTest
{
static void Main()
{
int? x = null;
object y = x;
Console.WriteLine("Test #1: {0}", x == null);
Console.WriteLine("Test #2: {0}", y == null);
Console.WriteLine("Test #3: {0}", IsNull<int?>(x));
}
static bool IsNull<T>(T t)
{
return t == null;
}
}
Is this intuitive, confusing, or <something else>?