XAttribute
和XElement
都源自XObject
类型。是否可以为XAttribute和XElement编写一个方法?
两者都有Value
属性。
到目前为止,这是我想出做我想做什么:
string FooMyXObject(XObject bar){
if (bar.NodeType == NodeType.Element)
return (bar as XElement).Value;
else if (bar.NodeType == NodeType.XAttribute)
return (bar as XAttribute).Value;
else
throw new Exception("Generic Fail Message");
}
这种感觉沉闷。我希望有一些方法可以使这个不那么笨拙。从XObject
访问Value
属性的某种方式,因为它们都具有字符串属性名称Value
。
这是可能的,还是我只是被迫以如此笨拙的方式去做?
['XText'](https://msdn.microsoft.com/en-us/library/system.xml.linq.xtext(v = vs.110).aspx)和['XComment'](https ://msdn.microsoft.com/en-us/library/system.xml.linq.xcomment(v = vs.110).aspx)也有一个没有公共基类的Value属性。真的有点烦人。这正是“IHasValue”接口适合的情况。 – dbc