В основном XNamespace предоставляет оператор, который выполняет неявное преобразование.
Я полагаю, что большинство руководящих принципов здравого смысла применимы, используйте их только там, где это имеет смысл, и избегайте путаницы.Самая большая проблема - неявное непреднамеренное преобразование, которое потенциально может привести к ошибкам программирования.Вы можете избежать этого и по-прежнему предоставлять преобразование с помощью явного оператора преобразования.
Примером случая, когда вы хотите использовать явный оператор преобразования вместо неявного, будет целочисленный класс, который позволяет преобразование из типа с плавающей запятой;неявное преобразование будет скрывать усечение / округление, которое должно произойти, и, таким образом, может привести пользователя в замешательство (и, вероятно, стать источником ошибок).
В моем коде я использовал его несколько развремя, например, в очень простой структуре результата проверки, которая обеспечивала неявное преобразование в bool (но не из).Это позволило мне сделать if (result) { ... }
(хотя жюри все еще не знает о полезности этого:)).
Думаю, большая часть его использования для "простых" типов данных, таких как большие целые числа, десятичные числа и аналогично.