声明命名空间并分配字符串值时发生了什么?

时间:2011-08-22 02:48:54

标签: c# xnamespace

以下是MSDN for XNamespace的示例:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root", "Content");
Console.WriteLine(root);

我不确定第一行发生了什么。是否存在某种隐式转换?

1 个答案:

答案 0 :(得分:2)

XNamespace有一个静态Get方法,它接受一个字符串参数并返回一个XNamespace实例。所以你可以把这行重写为

XNamespace aw = XNamespace.Get("http://www.adventure-works.com");

在您发布的版本中,您将利用implicit conversion defined against string。据推测,其实现仅仅调用上述方法。 可能的实现的示例:

public static implicit operator XNamespace(string name)
{
    return Get(name);
}