Section 10.9.3 of the C# spec sorts ça. La version courte est désactivée afin que l'utilisateur soit certain que les conversions entre types de référence et interfaces réussissent si et seulement si le type de référence implémente réellement cette interface, et que lorsque cette conversion a lieu, le même objet est référencé.
La définition d'une conversion implicite ou explicite entre des types de référence donne à l'utilisateur l'espoir qu'il y aura un changement de référence; après tout, la même référence ne peut pas être les deux types. D'autre part, l'utilisateur a pas ont la même attente pour les conversions entre les types de référence et les types d'interface.
User-defined conversions are not allowed to convert from or to interface-types. In particular, this restriction ensures that no user-defined transformations occur when converting to an interface-type, and that a conversion to an interface-type succeeds only if the object being converted actually implements the specified interface-type.
L'approche la plus simple est, bien, juste implémenter l'interface pour votre classe concrète :) Voir aussi http://stackoverflow.com/questions/308986/user-defined-conversion-to-interface – nawfal
que nous allons commencer ni 'public' ni' static' ne sont autorisés dans les définitions des membres de l'interface. – quetzalcoatl