Co to jest klasa interfejsu?
Interfejsy są używane wraz z klasami do definiowania tak zwanego kontraktu. Kontrakt to umowa dotycząca tego, co klasa dostarczy aplikacji.
Interfejs deklaruje właściwości i metody. Do klasy należy określenie dokładnego działania metody.
Spójrzmy na przykład interfejsu, zmieniając klasy w naszej aplikacji Console. Zwróć uwagę, że nie będziemy uruchamiać kodu, ponieważ nie ma niczego, co można uruchomić za pomocą interfejsu.
Stwórzmy klasę interfejsu. Klasa będzie miała nazwę „Guru99Interface”. Nasza główna klasa rozszerzy wtedy zdefiniowany interfejs. Cały kod należy zapisać w pliku Program.cs.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{interface Guru99Interface{void SetTutorial(int pID, string pName);String GetTutorial();}class Guru99Tutorial : Guru99Interface{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID, string pName){TutorialID = pID;TutorialName = pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor = new Guru99Tutorial();pTutor.SetTutorial(1,".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Objaśnienie kodu: -
Tutaj wyjaśniamy ważne sekcje kodu
- Najpierw definiujemy interfejs o nazwie „Guru99Interface”. Zauważ, że słowo kluczowe „interface” jest używane do zdefiniowania interfejsu.
- Następnie definiujemy metody, które będą używane przez nasz interfejs. W tym przypadku definiujemy te same metody, które są używane we wszystkich wcześniejszych przykładach. Zauważ, że interfejs po prostu deklaruje metody. Nie definiuje zawartego w nich kodu.
- Następnie rozszerzamy interfejs naszej klasy Guru99Tutorial. Tutaj piszemy kod, który definiuje różne metody zadeklarowane w interfejsie. Ten rodzaj kodowania zapewnia następujące korzyści
- Zapewnia, że klasa Guru99Tutorial dodaje tylko kod, który jest niezbędny dla metod „SetTutorial” i „GetTutorial” i nic więcej.
- Zapewnia również, że interfejs zachowuje się jak umowa. Klasa musi przestrzegać umowy. Więc jeśli umowa mówi, że powinna mieć dwie metody zwane „SetTutorial” i „GetTutorial”, to tak powinno być.
Podsumowanie
- Interfejs definiuje kontrakt, z którym klasa będzie zgodna. Interfejs definiuje, jakie operacje może wykonywać klasa.