Оглавление:
Определение - что означает оператор преобразования?
Оператор преобразования в C # - это оператор, который используется для объявления преобразования для определенного пользователем типа, так что объект этого типа может быть преобразован в или из другого определенного пользователем типа или базового типа. Два различных типа пользовательских преобразований включают в себя неявные и явные преобразования.
В общем случае явные и неявные операторы преобразования предоставляют возможность классу преобразовываться в другие возможные типы данных.
Явный оператор преобразования должен вызываться с помощью приведения и используется, когда преобразование должно быть видимым для пользователей оператора. Он используется в выражениях приведения, где два типа данных не полностью совместимы и поэтому требуют оператора приведения.
Оператор неявного преобразования прост в использовании. Он не требует специального синтаксиса и улучшает читаемость кода. Это также помогает классу преобразовывать данные типа данных в его совместимый тип без приведения типов. Неявное приведение должно использоваться в ситуациях, таких как вызовы и назначения членов функции, где нет риска потери данных или возникновения исключений.
Техопедия объясняет Оператор преобразования
Неявное преобразование может быть определено для класса с помощью ключевого слова «implicit» вместе с ключевым словом «operator». Явная операция преобразования может быть определена для класса с помощью ключевого слова «явный» и ключевого слова «оператор». Оба преобразования должны быть определены как статические.
Например, класс RomanNumeral может быть определен с двумя операторами преобразования. Оператор неявного преобразования может быть определен для преобразования из класса RomanNumeral в строку для отображения числа в римской числовой форме; Оператор явного преобразования может быть определен для выполнения преобразования из класса RomanNumeral в целое число.
Преобразование класса в тип объекта или интерфейсный тип не допускается. То же самое касается преобразования из базового класса в класс, производный от базового класса.
Для данного класса как явные, так и неявные операторы нельзя указывать для преобразования из одного типа в другой.
Следует позаботиться о том, чтобы неявное преобразование не привело к потере данных или исключению. Если есть веские причины для исключения, преобразование должно быть явного типа.
Это определение было написано в контексте C #