‫In de volgende video's ga je leren over interfaces en ze
‫zijn heel belangrijk omdat ze de functionaliteit van objectgeoriënteerd programmeren en klassen echt uitbreiden.
‫Dus wat is een interface?
‫Denk aan interfaces als contracten waarbij een klasse die een interface implementeert ermee instemt om implementaties te bieden voor
‫alle objecten die door die interface worden gedefinieerd.
‫Dit betekent dat een interface de contractvoorwaarden, methoden en eigenschappen bevat.
‫Maar hoe we ze implementeren, is aan de klasse die de interface implementeert.
‫Zolang deze interfacemethoden in onze klas worden geïmplementeerd, blijft de interface tevreden.
‫Interfaces kunnen dus geen implementaties bevatten die belangrijk zijn.
‫Dus hun namen worden over het algemeen voorafgegaan door het oog om ze te onderscheiden van andere C-scherpe objecten.
‫We maken interfaces met behulp van het interface-trefwoord.
‫Laten we nu eens kijken hoe we dat in de praktijk kunnen doen.
‫Oké, dus daar zijn we weer in Visual Studio, dus een van de meest gebruikte functionaliteiten
‫in onze C sharp-klassen is het vergelijken met instanties van een klasse, dit wordt gedaan met behulp van de equals-methode.
‫Dit zal vergelijken om te zien of de verwijzing naar beide klassen hetzelfde is.
‫We willen ze echter vergelijken en kijken of ze gelijk zijn op basis van een ander veld, zodat we dit kunnen
‫bereiken door een interface met de naam I Equatable te implementeren.
‫Dus in ons geval hebben we een klasse genaamd ticket en deze definieert één eigenschap genaamd duur in uren.
‫Dus laten we doorgaan en deze klasse maken.
‫Heel snel hier Ik heb een nieuwe klas en eigenlijk kan ik hierheen gaan of de sneltoets K en C
‫gebruiken, en ik ga dit ene ticket noemen.
‫Dus dit ticket heeft, zoals ik al zei, slechts één eigenschap en een constructor.
‫Dus laten we ze hier plaatsen.
‫Dus deze eigenschap is er om variatie van het ticket en dat van ons op te slaan.
‫En dan hebben we de constructor hier.
‫En laten we nu doorgaan en de gelijkwaardige interface implementeren, dus daarom gebruiken we iets dat lijkt op wat we deden
‫bij het gebruik van overerving, we gebruikten de dubbele punt en vervolgens de interface die we willen gebruiken.
‫En je ziet dat het er een heleboel zijn.
‫En degene die ik wil gebruiken, wordt de I-gelijkwaardige.
‫Nu moet u bepalen welke soorten objecten u wilt vergelijken.
‫Dus hier wil ik tickets met elkaar vergelijken.
‫Daarom moet ik een ticketzoekwoord toevoegen.
‫Nu zul je merken dat Visual Studio niet erg blij is omdat het zegt dat het een gegeneraliseerde methode definieert voor een
‫waardetype dat klasse implementeert om een specifieke methode te creëren.
‫Maar dan is het probleem dat we hier krijgen, dat ticket geen interface-leden implementeert.
‫Gelijkwaardig ticket is geheim.
‫We kunnen dat heel gemakkelijk oplossen door gewoon door te gaan en dit te implementeren, dus we hadden ofwel alle leden kunnen gebruiken
‫om ze expliciet te implementeren of we kunnen het gewoon handmatig doen.
‫Laten we dat heel snel doen.
‫Dus eigenlijk wil ik een boolean retourneren die zal controleren of het ticket dat ik passeer, het
‫andere ticket hetzelfde zal zijn als het ticket.
‫Dat is degene die deze methode aanroept.
‫Oké, het kaartje dus.
‫Dat we hieruit creëren, we vergelijken het met een ander ticket en dan willen we de duururen vergelijken.
‫Dus als ze dezelfde duur hebben, gaan we ervan uit dat het hetzelfde ticket is.
‫OK, dus hier kunnen we gewoon doorgaan en de vergelijking van deze duur in uren retourneren in vergelijking met de
‫andere duur en uren.
‫Dus eigenlijk zeggen we dat dit ticket een duur en uren heeft en dat het andere ticket ook van dat ticket
‫is.
‫Het heeft dus een duur in uren en we vergelijken de twee met elkaar.
‫En deze vergelijking, dit dubbele gelijkteken zal in principe terugkeren.
‫Waar of niet waar?
‫OK, dus dit is de bull-operator in links en rechts.
‫Dus wat het doet, is dat het vergelijkt wat er aan is overgelaten, met wat er goed aan is.
‫En als ze hetzelfde zijn, zal het waar terugkeren.
‫Anders wordt false geretourneerd.
‫In feite zeggen dat deze methode is gelijk aan true retourneert als het ticket dat de methode is gelijk aan
‫dezelfde duur en uren heeft als het ticket waarmee we het vergelijken, en dan terugkeert.
‫True, zo niet, retourneer dan false.
‫Oké, laten we naar onze programma's gaan.
‫Ja.
‫En gebruik dit ook echt.
‫Dus hier gaan we twee kaartjes maken.
‫Eén zal T één zijn en het zal een nieuw ticket zijn en het heeft een duur en uren van tien.
‫En laten we dit dan kopiëren en een ticket twee maken, dat ook tien uur zal hebben en nu kunnen we
‫ze vergelijken.
‫Laten we hier dus de rechterregel gebruiken om T twee puntgelijken weer te geven en T één ermee te vergelijken.
‫U kunt dus in feite ons ticket vergelijken met dat van ons ticket en het vergelijken met behulp van de isgelijk-methode.
‫Laten we dit nu heel snel uitvoeren.
‫En je zult zien dat er waar staat, en dat is meestal niet het geval voor de equals-methode, want als
‫je vergelijkt met objecten die een normale equals-methode gebruiken, om zo te zeggen.
‫Dus als we dit niet zouden implementeren, laten we het dan hier even kwijt.
‫Dus laten we dit allemaal van commentaar voorzien en laten we het met jou vergelijken.
‫Kijk, de methode is er nog steeds.
‫Deze gelijke werkt nog steeds omdat gelijk een methode is die in het algemeen bestaat, en je ziet nu dat er
‫onwaar staat omdat gelijk is een methode die zich binnen de objectklasse bevindt.
‫En de objectklasse heeft altijd deze gelijke methode omdat elke klasse erft van object.
‫Maar wat we nu doen, is dat we onze eigen methode voor gelijken implementeren door gebruik te maken van de equatable interface.
‫We gebruiken dus een specifieke interface waarmee we als het ware op onze eigen manier kunnen vergelijken en onze eigen code
‫kunnen implementeren.
‫Dus als we de twee vergelijken, vergelijken we niet of het object precies hetzelfde is waarmee we het
‫vergelijken.
‫Maar als in ons geval de tijd in het onze hetzelfde is.
‫Dus de duur en de onze is hetzelfde, en dan zal het terugkeren.
‫Waar.
‫Dus als de tijd en uren niet hetzelfde zijn, laten we zeggen dat het zes is, dan zal het false retourneren omdat
‫de duur niet hetzelfde is voor de twee tickets die we met elkaar vergelijken.
‫Dit was dus slechts een voorbeeld van een bestaande eenvoudige interface.
‫En zoals je zag, zijn er tal van interfaces die automatisch bestaan bij het maken van een speciaal project.
‫Maar we gaan zien hoe we onze eigen interfaces kunnen maken en gebruiken in de volgende video.
‫Dus tot ziens daar.