Мне никогда не нравились неявные операторы (предпочитаю методы расширения), потому что визуально трудно увидеть, когда в коде происходит приведение/преобразование.
Представьте, что у вас есть пример, как показано ниже:
public static implicit operator Deal(string dealAsXml)
{
//convert the xml into Deal object
}
Вышеупомянутый неявный оператор помогает вам привести/преобразовать сделку в формате Xml в объект сделки.
Обычно, когда вы щелкаете правой кнопкой мыши по методу, вы можете использовать для него «Найти использование» (или Alt+F7), что весьма полезно, есть ли что-нибудь подобное для неявных операторов?
Я думаю, это еще одна причина использовать методы расширений там, где это возможно.