Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Lerntagebuch 26---Schnittstellentyp

C#-Lerntagebuch 26---Schnittstellentyp

黄舟
黄舟Original
2017-01-21 15:33:281806Durchsuche

Eine Schnittstelle enthält die Definition eines verwandten Funktionssatzes, den eine Klasse oder Struktur implementieren kann. Durch die Verwendung einer Schnittstelle können Sie beispielsweise Verhalten aus mehreren Quellen in eine Klasse einbeziehen. Da die C#-Sprache keine Mehrfachvererbung unterstützt, kann eine Mehrfachvererbung über Schnittstellen erreicht werden. Kurz gesagt, die Schnittstelle enthält nur die Deklaration von Mitgliedern (Eigenschaften, Ereignisse, Indexer). Wie die Definition eines Mitglieds implementiert wird, wird durch seine abgeleitete Klasse bestimmt.

Deklarieren Sie eine Schnittstelle:

Die Schnittstelle wird mit dem Schlüsselwort interface deklariert, das der Deklaration einer Klasse ähnelt. Schnittstellendeklarationen sind standardmäßig öffentlich und Schnittstellen dürfen keine Konstanten, Felder, Operatoren, Instanzkonstruktoren, Destruktoren oder Typen enthalten. Schnittstellenmitglieder werden automatisch zu öffentlichen Mitgliedern und dürfen keine Zugriffsmodifikatoren enthalten. Mitglieder können auch keine statischen Mitglieder sein. Zum Beispiel:

public interface person //Definieren Sie eine Schnittstelle

{ void setname();} //Deklarieren Sie eine Methode

Eine Instanz einer Schnittstelle:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Test1  
{//定义一个person接口  
    public interface person  
    {//只声明方法  
        void setname(string name);  
        void setsex(char sex);  
        void setage(uint age);  
        void getinformation();  
    }  
    //people继承于person  
    class people:person  
    {  
        private string name;  
        private char sex;  
        private uint age;  
        //实现接口中的方法  
       public void setname(string name)  
        { this.name = name; }  
       public void setsex(char sex)  
        { this.sex = sex; }  
       public void setage(uint age)  
        { this.age = age; }  
       public void getinformation()  
        {  
            Console.WriteLine("姓名:\t"+name);  
            Console.WriteLine("性别:\t"+sex);  
            Console.WriteLine("年龄:\t"+age);  
        }  
      
    }  
    //多重继承  
    class student :people,person  
    { }  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            people peo = new people();  
            peo.setname("HC666");  
            peo.setsex('男');  
            peo.setage(18);  
            peo.getinformation();  
  
            student stu = new student();  
            stu.setname("HC555");  
            stu.setsex('男');  
            stu.setage(19);  
              
            stu.getinformation();  
        }  
    }  
}

Ergebnis:

C#-Lerntagebuch 26---Schnittstellentyp

Meine Schnittstelle scheint keine Wirkung zu haben, wenn sie entfernt wird, kann sie immer noch ausgeführt werden Aus gestalterischer Sicht müssen mehrere Klassen in einem Projekt geschrieben werden. Da diese Klassen relativ komplex sind und der Arbeitsaufwand relativ hoch ist, muss für jede Klasse ein Mitarbeiter schreiben. und Programmierer B wird es ursprünglich nichts miteinander zu tun haben, aber da Benutzer beide eine Methode zum „Aufrufen“ implementieren müssen, erfordert dies eine Einschränkung für sie Der andere Zweck besteht darin, den Aufruf zu erleichtern, ohne eine Schnittstelle zu verwenden. In diesem Fall ist diese Einschränkung jedoch nicht so offensichtlich usw., es ist unvermeidlich, dass jemand diese Methode übersieht. Daher ist sie über die Schnittstelle zuverlässiger und verbindlicher . Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn