Когда я должен определить (явный или неявный) оператор преобразования в 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Шаблон выглядит так: неявные преобразования в основном (только?) Полезны при определении числовых типов / типов значений, причем преобразование определяется формулой. Оглядываясь назад, это очевидно. Тем не менее, мне интересно, могут ли нечисловые классы извлечь выгоду из неявных преобразований?