Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止自定义TryParse方法可能出现的空引用警告?_C#_.net - Fatal编程技术网

C# 如何防止自定义TryParse方法可能出现的空引用警告?

C# 如何防止自定义TryParse方法可能出现的空引用警告?,c#,.net,C#,.net,以这样的方法为例: publicstaticbooltryparse(字符串输入,输出元组?timespan对) { //这里是转换码 } 它遵循“Try”模式,但如何使其在使用时不会收到潜在的空引用警告 if(TryParse(“测试数据”,输出变量) { Console.WriteLine(output.ToString());//可能的空引用! } 其他的 { WriteLine(“发生错误!”); } 经过一段时间的搜索,我偶然发现了这个答案,因此我决定发布一个答案,以便更容易找到。

以这样的方法为例:

publicstaticbooltryparse(字符串输入,输出元组?timespan对)
{
//这里是转换码
}
它遵循“Try”模式,但如何使其在使用时不会收到潜在的空引用警告

if(TryParse(“测试数据”,输出变量)
{
Console.WriteLine(output.ToString());//可能的空引用!
}
其他的
{
WriteLine(“发生错误!”);
}

经过一段时间的搜索,我偶然发现了这个答案,因此我决定发布一个答案,以便更容易找到。希望它能帮助别人!

如果使用
NotNullWhenAttribute
可以定义值何时不为null,即使它被标记为可为null

例如:

使用System.Diagnostics.CodeAnalysis;
...
公共静态bool TryParse(字符串输入,[NotNullWhen(true)]输出元组?timeSpanPair)
{
//这里是转换码
}
然后,如果结果被包装在
if
语句中,那么它将不再给您可能的空引用消息