C# SonarQube 抱怨空指针不应该被取消引用
C# SonarQube complaining to Null pointers should not be dereferenced
我在 SonarQube 中遇到问题,当我尝试直接从模型 属性 访问值时,它在 Sonar Qube 中显示错误。请提出建议。
您的代码无法保证参数不是 null
。如果是,您的程序就会崩溃。
如何处理这取决于您。检查参数并抛出 ArgumentNullException
如果它为空?如果它为空,则假定一个默认值?如果它为空,则不使用它的任何属性?由你决定。
该消息告诉您,您必须决定在这种情况下该怎么做,而不是随便挥手并假设它永远不会发生。
您在方法的第 5 行检查 vehicleDetail
是否为 null
,这意味着它在某些情况下可能为空。 SonarQube 警告您,在这些情况下,当您将 AgentCode
添加到命令参数时,您将得到 NullReferenceException
。
如果 vehicleDetail
确实是 null
,SonarQube 问题实际上指向代码中的错误,您应该将 vehicleDetail
的所有成员访问权限包装在 if (vehicleDetail != null)
.
如果 vehicleDetail
不应为 null,则应从方法开头的 if
语句中删除 null 检查并添加抛出 [=20= 的正常参数检查].
我在 SonarQube 中遇到问题,当我尝试直接从模型 属性 访问值时,它在 Sonar Qube 中显示错误。请提出建议。
您的代码无法保证参数不是 null
。如果是,您的程序就会崩溃。
如何处理这取决于您。检查参数并抛出 ArgumentNullException
如果它为空?如果它为空,则假定一个默认值?如果它为空,则不使用它的任何属性?由你决定。
该消息告诉您,您必须决定在这种情况下该怎么做,而不是随便挥手并假设它永远不会发生。
您在方法的第 5 行检查 vehicleDetail
是否为 null
,这意味着它在某些情况下可能为空。 SonarQube 警告您,在这些情况下,当您将 AgentCode
添加到命令参数时,您将得到 NullReferenceException
。
如果 vehicleDetail
确实是 null
,SonarQube 问题实际上指向代码中的错误,您应该将 vehicleDetail
的所有成员访问权限包装在 if (vehicleDetail != null)
.
如果 vehicleDetail
不应为 null,则应从方法开头的 if
语句中删除 null 检查并添加抛出 [=20= 的正常参数检查].