Maison > développement back-end > C++ > C #: Implémentation implicite contre l'interface explicite: Quelle approche est la meilleure?

C #: Implémentation implicite contre l'interface explicite: Quelle approche est la meilleure?

Susan Sarandon
Libérer: 2025-02-01 08:51:09
original
286 Les gens l'ont consulté

C#: Implicit vs. Explicit Interface Implementation: Which Approach is Best?

C # Implémentation de l'interface: le meilleur choix de méthodes cachées et explicites

La définition de l'interface dans C # est définie comme un contrat pour fournir un contrat. Ces contrats peuvent être mis en œuvre dans cachés ou explicitement, chacun avec ses propres caractéristiques.

Implémentation cachée

Cette méthode définit les membres de l'interface comme des membres conventionnels qui implémentent la classe. Cela simplifie le code et permet d'accéder directement à l'interface via la classe elle-même, qui peut être transformée. Par exemple:

Exprimant

<code class="language-csharp">class MyClass : IList
{
    public void CopyTo(Array array, int index)
    {
        // CopyTo 的实现
    }
}</code>
Copier après la connexion

Dans l'implémentation explicite, la définition des membres de l'interface inclut le nom de l'interface. Ces limites ne peuvent accéder à l'interface qu'en convertissant obligatoire à l'interface elle-même:

Avantages et inconvénients

<code class="language-csharp">class MyClass : IList
{
    void IList.CopyTo(Array array, int index)
    {
        // CopyTo 的实现
    }
}</code>
Copier après la connexion
Implémentation implorée:

Le code est plus concis

Vous pouvez accéder à l'interface via la classe et les interfaces

    Dans un environnement non -IOC, des comportements inattendus peuvent être causés
  • exprimer l'implémentation:
  • La réalisation est plus claire

L'accès à l'interface est limité

    Autoriser plusieurs interfaces
  • arrière-plan historique
  • En raison de problèmes dans l'environnement non -IOC, les directives de Microsoft sont recommandées pour éviter une implémentation explicite. Cependant, dans le développement C # moderne, les interfaces sont généralement passées et l'implémentation explicite peut fournir des avantages dans la définition du code et les schémas de mise en œuvre multiples.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal