如上图,Descendants要求传的参数类型是XName类型,没有其他一个参数类型的重载,而我传的是string类型,为什么也可以?
谢谢!
你问的这个问题是操作符重载的问题。
你可以通过Reflecter反编译XName里的代码会发现具体的实现,就是XName能自动识别字符串,比如:
XName xname = "mystring";
等同于:
XName xname = new XName("mystring")
谢谢!
不过应该等同于XName xname =XName.Get("mystring");
Descendants重载中参数Xname为一个类,这个类中返回的是一个string类型的值,XName表示 XML 元素或特性的名称。此类提供了从String进行的隐式转换,具体的信息,你可以参数vs2010中自带的帮助Xname类
Reflecter反编译XName,如上图!