Why isn't it possible to define implicit cast operator from interface to class?
What if you had a subclass of Control
, and that subclass implemented the ISomeControl
interface.
class SomeControl : Control, ISomeControl {}
Now a cast would be ambiguous -- the built-in upcast, and your user-defined conversion. So you can't provide user-defined conversions for interfaces.