class SyntacticSugar
{
static void Main()
{
int? nullable = 5; //等价Nullable<int> nullable = 5;
object boxed = nullable;
Console.WriteLine(boxed.GetType());
int normal = (int)boxed;
Console.WriteLine(normal);
nullable = (int?)boxed; //等价nullable = (Nullable<int>)boxed;
Console.WriteLine(nullable);
nullable = new int?(); //等价nullable = new Nullable<int>();
boxed = nullable;
Console.WriteLine(boxed == null);
nullable = (int?)boxed; //等价nullable = (Nullable<int>)boxed;
Console.WriteLine(nullable.HasValue);
}
}
这样写更简洁,使用可空类型
输出
System.Int32 // int 的类型
5 //拆箱可空类型 的值为5
5 //拆箱成非可空类型 值为5
True //装箱成没有值可空类型 和 null 值相等
False //拆箱成可控类型,没有值