Причина, по которой вы не можете этого сделать, состоит в том, что она специально запрещена в спецификации языка C #:
Класс или структура разрешено объявлять преобразование из типа источника S в target type T, если все из них верны:
blockquote>
- ...
- Ни S, ни T не являются
object
или интерфейсом .и
Преобразованиям, заданным пользователем, не разрешено преобразовывать из или в интерфейсные типы , В частности, это ограничение гарантирует, что при преобразовании в интерфейсный тип не будет никаких пользовательских преобразований и что преобразование в интерфейсный тип будет выполнено только в том случае, если объект преобразованный фактически реализует указанный интерфейс interface-type .
blockquote>