在尽可能少的代码中处理空值
本文关键字:处理 空值 代码 尽可能 | 更新日期: 2023-09-27 18:32:18
我对C#比较陌生,所以请耐心等待!如果字典中没有任何内容,我更愿意编写的代码会抛出空引用,因为它应该这样做。我必须将其转换为字符串,因为字典返回一个对象:
string mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
我必须编写的代码来解决这个问题?
if (zimOrganisation.OrganizationFields.ContainsKey("main_director"))
{
mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
}
else
{
mainDirectorsInZim = null;
}
我有不少这些东西要写,而且似乎效率低下。有没有更好的方法可以做到这一点?
我试图通过使用TryGetValue
方法稍微减少代码,但正如 serhiyb 在评论中指出的那样,由于必须将object
转换为string
,它不起作用。
但这应该更有效率。
string mainDirectorsInZim = null;
object tmp;
if (zimOrganisation.OrganizationFields.TryGetValue("main_director", out tmp))
{
mainDirectorsInZim = (string)tmp;
}
OTOH,你可以先初始化你的字符串null
,并消除else
块,如果你碰巧发现它更容易理解,因为它更接近你现有的代码。
string mainDirectorsInZim = null;
if (zimOrganisation.OrganizationFields.ContainsKey("main_director"))
{
mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
}