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
语句中,那么它将不再给您可能的空引用消息