如何在 C# 中将字符串解析为可空的 int?
csharpserver side programmingprogramming更新于 2025/4/10 14:25:18
C# 提供了一种特殊的数据类型——可空类型,您可以为其分配正常范围的值以及空值。
C# 2.0 引入了可空类型,允许您将空值赋给值类型变量。您可以使用 Nullable 声明可空类型,其中 T 是一个类型。
可空类型只能与值类型一起使用。
如果值为空,Value 属性将抛出 InvalidOperationException;否则将返回该值。
如果变量包含值,HasValue 属性将返回 true;如果变量为空,则返回 false。
您只能对可空类型使用 == 和 != 运算符。如需进行其他比较,请使用 Nullable 静态类。
不允许嵌套可空类型。Nullable<Nullable<int>> i; 将引发编译时错误。
示例 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;
}
}

