Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser les interfaces C# : Définition, implémentation et cas d'utilisation pratiques

Les interfaces C# expliquées

Ce guide vous présente les fondamentaux des interfaces C#, montre comment les créer et les implémenter, et met en lumière des scénarios réels où elles excellent.

Qu'est-ce qu'une interface C# ?

Une interface en C# est un contrat qui définit un ensemble de méthodes, propriétés, événements ou indexeurs sans fournir d'implémentation. Contrairement à une classe abstraite, chaque membre d'une interface est implicitement abstrait et public. C'est pourquoi les interfaces sont idéales pour définir des capacités que plusieurs classes non liées peuvent partager.

interface IPolygone { void CalculerAire(); }

Implémentation d'une interface

Pour utiliser une interface, une classe doit l'implémenter en fournissant des définitions concrètes pour tous ses membres. La syntaxe deux-points (:) est utilisée, comme pour l'héritage.

using System;
namespace CsharpInterface {
    interface IPolygone {
        void CalculerAire(int longueur, int largeur);
    }
    class Rectangle : IPolygone {
        public void CalculerAire(int longueur, int largeur) {
            int aire = longueur * largeur;
            Console.WriteLine($"Aire du rectangle : {aire}");
        }
    }
    class Program {
        static void Main(string[] args) {
            Rectangle rect = new Rectangle();
            rect.CalculerAire(100, 200);
        }
    }
}

Sortie

Aire du rectangle : 20000

Implémentation de plusieurs interfaces

C# permet à une classe d'implémenter plusieurs interfaces simultanément, permettant l'héritage multiple de types.

using System;
namespace CsharpInterface {
    interface IPolygone {
        void CalculerAire(int a, int b);
    }
    interface ICouleur {
        void ObtenirCouleur();
    }
    class Rectangle : IPolygone, ICouleur {
        public void CalculerAire(int a, int b) {
            int aire = a * b;
            Console.WriteLine($"Aire du rectangle : {aire}");
        }
        public void ObtenirCouleur() {
            Console.WriteLine("Rectangle rouge");
        }
    }
    class Program {
        static void Main(string[] args) {
            Rectangle r = new Rectangle();
            r.CalculerAire(100, 200);
            r.ObtenirCouleur();
        }
    }
}

Sortie

Aire du rectangle : 20000 Rectangle rouge

Utilisation d'une référence d'interface

Bien qu'on ne puisse pas instancier une interface directement, on peut déclarer une variable de ce type d'interface et lui assigner une instance de toute classe implémentant l'interface. C'est un outil puissant pour atteindre le polymorphisme.

using System;
namespace CsharpInterface {
    interface IPolygone {
        void CalculerAire(int longueur, int largeur);
    }
    class Rectangle : IPolygone {
        public void CalculerAire(int longueur, int largeur) {
            int aire = longueur * largeur;
            Console.WriteLine($"Aire du rectangle : {aire}");
        }
    }
    class Program {
        static void Main(string[] args) {
            IPolygone poly = new Rectangle();
            poly.CalculerAire(100, 200);
        }
    }
}

Sortie

Aire du rectangle : 20000

Exemple pratique : Calculs polymorphes de formes

Ci-dessous, nous définissons une interface IPolygone et deux formes concrètes qui l'implémentent. Chaque forme calcule son aire indépendamment.

using System;
namespace CsharpInterface {
    interface IPolygone {
        void CalculerAire();
    }
    class Rectangle : IPolygone {
        public void CalculerAire() {
            int longueur = 30;
            int largeur = 90;
            int aire = longueur * largeur;
            Console.WriteLine($"Aire du rectangle : {aire}");
        }
    }
    class Carre : IPolygone {
        public void CalculerAire() {
            int cote = 30;
            int aire = cote * cote;
            Console.WriteLine($"Aire du carré : {aire}");
        }
    }
    class Program {
        static void Main(string[] args) {
            Rectangle rect = new Rectangle();
            rect.CalculerAire();
            Carre sq = new Carre();
            sq.CalculerAire();
        }
    }
}

Sortie

Aire du rectangle : 2700 Aire du carré : 900

Pourquoi utiliser les interfaces C# ?

Langue C

  1. Utiliser l'interface en ligne de commande avec SPICE
  2. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  3. Interface Collection Java : concepts de base et méthodes essentielles
  4. Maîtriser l'interface NavigableSet de Java : Navigation, tri et exemples pratiques
  5. Maîtriser les expressions lambda Java : Des bases à l'API Stream
  6. Capteur sans fil fiable pour longues allées – Intégration facile Raspberry Pi
  7. Comprendre les interfaces Java : Définitions, Usages et Bonnes pratiques
  8. Java 9 : Méthodes privées dans les interfaces — Encapsulation et réutilisation
  9. Maîtriser les interfaces C# : contrats de conception pour une POO robuste