C# Interfaces and Generics¶
Inleiding¶
Deze documentatie dient als leidraad om theoretische concepten in onder meer object georiënteerd programmeren, databases en infrastructuur te begrijpen en toe te passen. Het benadrukt de relevantie van theoretische kennis voor praktische toepassingen in je project en biedt een gestructureerde aanpak voor het documenteren van je voortgang.
Samenvatting van de cursus in ongeveer 300 woorden¶
Met interfaces kan je contracten opzetten waaraan klassen kunnen voldoen om die interface te kunnen “zijn”. Hiermee kan een deel dezelfde functionaliteit over veel verschillende klassen gedeeld worden, terwijl ze anders compleet anders zijn. Ook bereik je hiermee ook een soort van “duck-typing”, maar op een minder dynamische manier.
Met generics kan je een template maken dat de compiler kan gebruiken om jouw code, voor jou, te kopiëren voor elke type waarvoor je het wilt gebruiken. Zodat je zelf (meestal) niet meerdere varianten, met de hand, voor verschillende types, van dezelfde functie hoeft te maken. Hiermee kan je dynamische code schrijven dat na het compileren niet echt dynamisch is, waardoor het veel sneller is. Alleen ten kostte van wat meer opslag ruimte.
Maar met generics verminder je juist de dynamiek op de plek waar je die code gebruikt. Omdat de compiler weet welke type er in gaat kan het strenger zijn over je code, en ervoor zorgen dat je niet per ongeluk een verkeerde type gebruikt waar het niet moet. Dit word dan al opgevangen tijdens het compileren, of zelfs tijdens het schrijven met een slimme code editor.
Verder was de cursus een groot deel alleen voorbeelden laten zien van generics in gebruik, en plekken waar generics beschikbaar zijn in de standaard library. Eigenlijk dingen die je (sneller) kan vinden in de officiële documentatie, waar je ook nog op eigen tempo doorheen kan lezen. Wat meestal sneller is, en dit vond ik jammer en saai van de cursus.
Relevantie tot je project en praktische toepassing¶
Zelf gebruik ik al overal waar het kan generics. Misschien een beetje te veel, want ik heb situaties tegengekomen waar ik ze niet kon gebruiken omdat mijn code net te dynamisch was.
Interfaces aan de andere kant gebruik ik nog minder, maar meestal kan ik wegkomen met een abstracte base klas. Wel gebruik ik veel de ingebouwde interfaces, bijvoorbeeld bij het returnen van informatie. Als ik dan in de functie zelf Linq gebruik dan return ik gewoon de IEnumerable zelf, zodat de gebruiker van de functie zelf kan kiezen of hij/zij het überhaupt in een list/array stopt.
Resultaten LinkedIn Learning cursus¶
Resultaten quiz op DLO¶
Vragen voor expert review¶
[Stel drie concrete vragen op die je tijdens de expert review wil behandelen. Deze vragen zijn gericht op het verkrijgen van feedback en inzichten van de beoordelaar.] 1. 1. 1.
Gecreëerd: May 20, 2024