以尽可能少的代码处理空值

时间:2016-01-28 21:38:43

标签: c#

我对C#比较新,所以请耐心等待!如果字典中没有任何内容,我希望编写的代码抛出一个空引用。我必须将它作为字符串转换为字典返回一个对象:

string mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];

我必须编写的代码来解决这个问题?

if (zimOrganisation.OrganizationFields.ContainsKey("main_director"))
  {
      mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
  }
  else
  {
     mainDirectorsInZim = null;
  }

我写这些内容并不是很少,而且似乎效率低下。有更好的方法吗?

1 个答案:

答案 0 :(得分:6)

我尝试使用TryGetValue方法稍微减少代码,但正如serhiyb在评论中指出的那样,由于必须将object转换为{{1 }}

但这仍然会稍微提高效率。

string

OTOH,你可以将你的字符串初始化为string mainDirectorsInZim = null; object tmp; if (zimOrganisation.OrganizationFields.TryGetValue("main_director", out tmp)) { mainDirectorsInZim = (string)tmp; } ,并删除null块,如果你碰巧发现它更容易理解,因为它更接近你现有的代码。

else