Что происходит, когда вы объявляете XNamespace и присваиваете строковое значение? - PullRequest
1 голос
/ 22 августа 2011

Вот пример из MSDN для XNamespace:

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

Я не уверен, что происходит в первой строке.Происходит ли какое-то неявное преобразование?

1 Ответ

2 голосов
/ 22 августа 2011

XNamespace имеет статический метод Get, который принимает строковый параметр и возвращает экземпляр XNamespace.Таким образом, вы можете переписать строку как

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

В опубликованной вами версии вы получите преимущество неявного преобразования , определенного для строки .Предположительно, его реализация просто вызывает вышеупомянутый способ.Пример возможной реализации :

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