class NullableTryParse
{
static int? TryParse(string data)
{
int ret; //初始为0
if (int.TryParse(data, out ret)) //使用输出参数的经典调用 if里面的值为0,这句为假,data为字符串 Not valid,ret为0
{
return ret;
}
else
{
return null; //返回了null
}
}
static void Main()
{
int? parsed = TryParse("Not valid"); //可空调用 parsed 的值为null
if (parsed != null) //parsed的值为null 这句为假
{
Console.WriteLine("Parsed to {0}", parsed.Value);
}
else
{
Console.WriteLine("Couldn't parse"); //执行这句
}
}
}
可空版本将自然返回的值和解析封装到一个变量中
输出
Couldn't parse