null值不能赋给值类型。这是因为,根据定义,值类型不能包含引用,其中包括对“无(nothing)”的引用。然而,在值本来就缺失的时候,这也会带来问题。例如,在指定一个计数的时候,假如计数未知,你应该如何输入?一个可能的解决方案是指定一个特殊值,比如0或者int.Max,但这些都是有效的整数。相反,我们更希望直接将null赋给值类型,因为这不是一个有效的整数。
为了声明可以存储null的变量,要使用可空修饰符。代码清单2-17演示了C# 2.0的这个新特性。
代码清单2-17 使用可空修饰符
static void Main()
{
int? count = null;
do
{
// ...
}
while(count == null);
}
将null赋给值类型,这在数据库编程中尤其有用。在数据表中,经常出现值类型的列允许为空的情况。除非允许包含null值,否则在C#代码中检索这些列,并将它们的值赋给对应的字段,就会出现问题。幸好,可空修饰符能够妥善地解决这个问题。
为了声明可以存储null的变量,要使用可空修饰符。代码清单2-17演示了C# 2.0的这个新特性。
代码清单2-17 使用可空修饰符
static void Main()
{
int? count = null;
do
{
// ...
}
while(count == null);
}
将null赋给值类型,这在数据库编程中尤其有用。在数据表中,经常出现值类型的列允许为空的情况。除非允许包含null值,否则在C#代码中检索这些列,并将它们的值赋给对应的字段,就会出现问题。幸好,可空修饰符能够妥善地解决这个问题。