空取消引用C#

时间:2016-12-28 02:26:08

标签: c# null dereference

if (ddl.SelectedValue != "")

使用Fortify分析我的代码后,Fortify向我展示了一个漏洞,即“无取消引用”#34;

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

假设ddl永远不能为空:

if (!String.IsNullOrEmpty(ddl.SelectedValue)
{

}

否则:

if (ddl != null && !String.IsNullOrEmpty(ddl.SelectedValue)
{

}

答案 1 :(得分:0)

在C#6中,您具有null取消引用运算符,也称为安全导航运算符,因此您可以执行...

if (!String.IsNullOrEmpty(ddl?.SelectedValue)
{
    // ddl can be null and this will not throw.
}