L'interface cachée et implémentation explicite de l'interface dans le C #
C # offre deux façons d'implémenter les interfaces: implémentation cachée et implémentation explicite.
dans l'implémentation:
L'implémentation illusale fait référence aux membres qui définissent directement les membres de l'interface comme une classe. Par exemple:
Cette méthode est très pratique pour réaliser tous les membres de l'interface et y accéder directement à partir de l'angle de la classe et de l'interface.
<code class="language-csharp">public class MyList : IList<int> { public void Add(int item) { } public void CopyTo(int[] array, int index) { } // ... }</code>
L'implémentation explicite est la méthode d'interface de définition de syntaxe de "interfacename.methodname" dans la classe. Par exemple:
L'utilisation de l'implémentation explicite ne peut accéder à la méthode d'interface qu'en convertissant les classes en interfaces.Quand utiliser l'implémentation cachée ou explicite:
<code class="language-csharp">public class MyList2 : IList<int> { void IList.CopyTo(Array array, int index) { } // ... }</code>
Si vous devez accéder facilement aux membres de l'interface et implémenter toutes les méthodes nécessaires, il est recommandé d'utiliser une implémentation cachée. L'implémentation explicite est applicable aux situations suivantes:
Besoin de masquer des détails d'implémentation spécifiques.
Versions multiples de l'interface (par exemple, pour l'injection de dépendance).
À l'ère de s'appuyer sur la prévalence de l'injection, les suggestions qui se sont opposées à la mise en œuvre explicite ne sont plus aussi importantes. Dans les applications basées sur les dépendances, les interfaces sont généralement passées, donc directement moins critique à partir des membres de l'interface d'accès de classe.
方法 | 优点 | 缺点 |
---|---|---|
隐式实现 | 易于实现 | 可能导致类代码混乱 |
显式实现 | 类代码更简洁 | 限制了从类中访问接口方法 |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!