我想测试是否存在xml属性。鉴于此:
XmlAttributeCollection PG_attrColl = SomeNodeorAnother.Attributes;
第一次测试有效:
if (null != PG_attrColl["SomeAttribute"])
“GetNamedItem”应该返回null,但是下面的测试会抛出一个异常,抱怨它返回的null。
if (null != PG_attrColl.GetNamedItem("SomeAttribute").Value;)
为何与众不同?好奇。
答案 0 :(得分:12)
因为如果GetNamedItem
返回null,则无法呼叫其Value
成员。
if (null != PG_attrColl["SomeAttribute"])
{
string value = PG_attrColl.GetNamedItem("SomeAttribute").Value;
}
或者
object someAttributeNullable = PG_attrColl.GetNamedItem("SomeAttribute");
if (null != someAttributeNullable)
{
string value = someAttributeNullable .Value;
}
答案 1 :(得分:4)
if (null != PG_attrColl["SomeAttribute"])
在这里,您要检查属性是否为空
if (null != PG_attrColl.GetNamedItem("SomeAttribute").Value;)
在这里,您要检查属性的值是否为null。代码首先尝试访问该属性,该属性为null,抛出异常。