Vad är en gränssnittsklass?
Gränssnitt används tillsammans med klasser för att definiera vad som kallas ett kontrakt. Ett kontrakt är ett avtal om vad klassen kommer att tillhandahålla till en ansökan.
Ett gränssnitt förklarar egenskaperna och metoderna. Det är upp till klassen att definiera exakt vad metoden ska göra.
Låt oss titta på ett exempel på ett gränssnitt genom att ändra klasserna i vår konsolapplikation. Observera att vi inte kommer att köra koden eftersom det inte finns något som kan köras med ett gränssnitt.
Låt oss skapa en gränssnittsklass. Klassen kommer att kallas "Guru99Interface." Vår huvudklass utökar sedan det definierade gränssnittet. All kod måste skrivas i Program.cs-filen.
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();}}}
Kodförklaring: -
Här förklarar vi de viktiga delarna av koden
- Vi definierar först ett gränssnitt som heter "Guru99Interface." Observera att nyckelordet "gränssnitt" används för att definiera ett gränssnitt.
- Därefter definierar vi de metoder som kommer att användas av vårt gränssnitt. I det här fallet definierar vi samma metoder som används i alla tidigare exempel. Observera att ett gränssnitt bara deklarerar metoderna. Det definierar inte koden i dem.
- Vi gör sedan vår Guru99Tutorial-klass utöka gränssnittet. Här skriver vi koden som definierar de olika metoderna som anges i gränssnittet. Denna typ av kodning uppnår följande
- Det säkerställer att klassen Guru99Tutorial bara lägger till koden som är nödvändig för metoderna "SetTutorial" och "GetTutorial" och ingenting annat.
- Det säkerställer också att gränssnittet beter sig som ett kontrakt. Klassen måste följa kontraktet. Så om kontraktet säger att det ska ha två metoder som kallas "SetTutorial" och "GetTutorial", så ska det vara.
Sammanfattning
- Ett gränssnitt definierar ett kontrakt som klassen kommer att följa. Gränssnittet definierar vilka operationer klassen kan utföra.