我有一个流程,其中检查一个代码和多个变量是否为空,设置一个错误消息,如果是则返回。然而,GetName上仍然会发出警告“code possible null reference argument”。我可以确定代码在这一点上不是空的。通常如何避免这种情况?
if (IsNullOrEmpty(code) || IsNullOrEmpty(order))
errorMessage = "missing data";
if (!IsNullOrEmpty(errorMessage)) return;
var dbd = await GetName(code); // warning here
2条答案
按热度按时间mwkjh3gx1#
C#的空状态静态分析甚至不会考虑存储空状态的局部变量。
这个简化的代码示例演示了:
警告CS8604“void NonNullArg(string code)”中的参数“code”的引用参数可能为null。
如果内联检查并省略变量,则警告消失:
3df52oht2#
试试这个: