我有这种代码和平.我必须检查XML中的每个级别,避免NULL异常.我可以改进这段代码吗?
private void GetFunctionsValues(XElement x)
{
if (x.Element("credentials") != null)
{
if (x.Element("credentials").Element("faccess") != null)
{
foreach (var access in x.Element("credentials").Element("faccess").Elements("access"))
{
if (access.Attribute("db_id") != null)
{
if (int.Parse(access.Attribute("db_id").Value) == 19) FuncPlus = true;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你可以将两个嵌套if在一个中:
if (x.Element("credentials") != null && x.Element("credentials").Element("faccess") != null )
Run Code Online (Sandbox Code Playgroud)
第一个评估为false会阻止第二个执行,因此没有空引用异常.这种行为通常被称为"短路评估":程序很快就会理解它可以跳过if,它会停止评估剩余部分.
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |