Что происходит, когда вы объявляете XNamespace и присваиваете строковое значение?

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

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

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

1 ответ

Решение

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

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

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

public static implicit operator XNamespace(string name)
{
    return Get(name);
}
Другие вопросы по тегам