Когда я должен определить (явный или неявный) оператор преобразования в C #?

Несколько малоизвестная особенность C # - возможность создавать неявные или явныеопределяемые пользователем преобразования типов. I have been writing C# code for 6 years now, and I have never used it. So, I'm afraid I might be missing good opportunities.

Каковы законные, хорошие способы использования пользовательских преобразований? У вас есть примеры, где они лучше, чем просто определение пользовательского метода?

--

Оказывается, у Microsoft есть некоторыеруководящие принципы проектирования о конверсиях, наиболее актуальными из которых являются:

Do not provide a conversion operator if such conversion is not clearly expected by the end users.

Но когда конверсия "ожидается"? Вне классов игрушечных чисел я не могу понять ни одного реального случая использования.

Вот краткое изложение примеров, представленных в ответах:

Radians/Degrees/double Polar/Point2D Kelvin/Farenheit/Celsius

Шаблон выглядит так: неявные преобразования в основном (только?) Полезны при определении числовых типов / типов значений, причем преобразование определяется формулой. Оглядываясь назад, это очевидно. Тем не менее, мне интересно, могут ли нечисловые классы извлечь выгоду из неявных преобразований?

Ответы на вопрос(4)

Ваш ответ на вопрос