
C#提供了一种特殊的数据类型,即可空类型,可以将普通范围的值以及null值赋给它们。
C# 2.0引入了可空类型,允许将null赋给值类型变量。可以使用Nullable声明可空类型,其中T是一种类型。
可空类型只能与值类型一起使用。
如果value为null,Value属性将抛出InvalidOperationException异常;否则,它将返回该值。
HasValue属性返回true,如果变量包含一个值,或者返回false,如果它为null。
只能使用==和!=运算符与可空类型一起使用。对于其他比较,请使用Nullable静态类。
不允许嵌套的可空类型。Nullable
示例1
static class Program{
static void Main(string[] args){
string s = "123";
System.Console.WriteLine(s.ToNullableInt());
Console.ReadLine();
}
static int? ToNullableInt(this string s){
int i;
if (int.TryParse(s, out i)) return i;
return null;
}
}输出
123
当将Null传递给扩展方法时,它不会打印任何值
static class Program{
static void Main(string[] args){
string s = null;
System.Console.WriteLine(s.ToNullableInt());
Console.ReadLine();
}
static int? ToNullableInt(this string s){
int i;
if (int.TryParse(s, out i)) return i;
return null;
}
}