Поиск

Нестандартные преобразования

Ранее я упоминал, что оператор "скобки", применяемый при приведении типов, не может быть перегружен и вместо этого используется нестандартное преобразование. Если коротко, нестандартные преобразования позволяют объявить преобразования для структур и классов, так что эти struct или class могут быть преобразованы в другие структуры, классы или базисные типы С#. Когда и зачем это делать? Скажем, в вашем приложении нужны две температурные шкалы, Цельсия и Фаренгейта, чтобы быстро переводить температуру из одной шкалы в другую. В случае нестандартных преобразований придерживайтесь такого синтаксиса:

Fahrenheit f = 98.6F;
Celsius с = (Celsius)f; // Нестандартное преобразование.

По сравнению с синтаксисом, приведенным ниже, это не дает никаких функциональных преимуществ, но это проще писать и легче читать.

Fahrenheit f = 98.6F;
Celsius с = f.ConvertToCelsius();