SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition statements #8 Collections (List, Dictionary) #9 Exceptions og kodekvalitet #10 Data Binding, Commands og MVVM
Spørgsmål #1 Typer og Variable Hvilke typer kan vi benytte til at repræsentere tal? Hvilke typer kan vi benytte til at repræsentere tekst? Hvilke andre simple typer benytter vi ofte? Hvordan erklæres en variabel? Hvordan giver vi en variabel en værdi? Hvad sker der med den gamle værdi, når vi giver en variabel en ny værdi? Hvordan kan vi konvertere mellem forskellige typer? Hvis vi har defineret en klasse Bil, hvordan erklærer vi så en variabel minbil, som kan referere til et objekt af typen Bil? Kan to variable referere til samme objekt? Hvilke konsekvenser kan det have? Hvilke regler bør vi følge når vi navngiver variable? Hvad betyder null?
Spørgsmål #2 Aritmetik og logik Hvilke forhold skal vi være særligt opmærksomme på, når vi regner med variable af typen int? Hvilke forhold skal vi være særligt opmærksomme på, når vi regner med variable af typen double? Hvad betyder modulo? Hvad menes der med et logisk udtryk? Hvad betyder ==? Hvad betyder &&? Hvad betyder? Hvad betyder!? I hvilke typer statements har vi brug for logiske udtryk? Hvordan vil du skrive et logisk udtryk, som er sandt hvis værdien af en variabel skonummer (af typen int) er mellem 40 og 49?
Spørgsmål #3 Klasser (Definition, Objekter) Hvad er en klasse? Hvad er et objekt? Hvis vi har defineret en klasse Bil, hvordan erklærer vi så en variabel minbil, som kan referere til et objekt af typen Bil? Hvis vi har defineret en klasse Bil, hvordan laver vi så et nyt objekt af typen Bil? Kan vi lave mange objekter af den samme klasse? Kan mange variable referere til det samme objekt? Kan en variabel referere til mange objekter? Hvad er en constructor? Hvad er dens formål? Hvad er en property? Hvad kan vi bruge den til? Hvad betyder get og set? Hvad er forskellen på public og private? Hvordan gemmer vi data i et objekt?
Spørgsmål #4 Klasser (metoder) Hvad er en klasse? Hvad er et objekt? Hvad er en metode? Hvilke elementer indgår i definitionen af en metode? Hvis vi har en variabel minbil som refererer til et objekt af typen Bil, hvordan kan vi så kalde en metode på dette objekt? Hvad skal der gælde om de metoder vi kan kalde? Hvad menes der med en returværdi for en metode? Hvad skal vi skrive i definitionen af en metode, som returnerer en værdi af typen string? Hvad betyder void? Hvad betyder begrebet parametre i forbindelse med metoder? Hvad er forskellen på public og private? Hvorfor kunne man finde på at erklære en metode som værende private? Hvordan kalder man en metode på et objekt? Hvad betyder static? Hvorfor kunne man finde på at erklære en metode som værende static? Hvordan kalder man en metode som er static?
Spørgsmål #5 Klasser (Nedarvning, Polymorfi) Hvad er en klasse? Hvad er et objekt? Hvad betyder det, at en klasse kan arve fra en anden klasse? Hvis klassen Kat arver fra klassen Dyr, hvilke metoder defineret i Dyr kan der så kaldes fra metoderne i Kat? Hvis klassen Kat arver fra klassen Dyr, hvordan kan jeg så kalde Dyr s constructor fra Kat s constructor? Hvad betyder det, hvis en metode erklæres som virtual? Hvad betyder override? Hvad betyder det, hvis en metode erklæres som abstract? Hvornår kan det være relevant at erklære en metode som abstract? Hvilke konsekvenser har det, hvis en klasse indeholder metoder som er abstract? Hvad er et interface? Hvad nytte kan vi have af et interface? Hvad mener man med polymorfi? Hvordan kan det være nyttigt?
Spørgsmål #6 Logik og Conditional statements Hvad menes der med et logisk udtryk? Hvad betyder ==? Hvad betyder &&? Hvad betyder? Hvad betyder!? Hvordan er syntaksen for en if-statement? Hvordan anvender vi et logisk udtryk i en if-statement? Hvor mange gange kan koden i en if-statement blive udført? Hvordan er syntaksen for en if/else-statement? Hvordan kan vi skrive en if/else-statement, hvor der er mere end to kode-blokke? Vi har en blok af kode, som kun skal udføres når betingelse A og betingelse B er sande. Hvordan kan vi udtrykke dette med en if-statement? Kender du andre typer conditional statements?
Spørgsmål #7 Repetition statements Hvad kan man overordnet set bruge en repetition statement til? Hvordan er syntaksen for en while-statement? Hvordan anvender vi et logisk udtryk i en while-statement? Hvor mange gange kan kode-blokken i en while-statement blive udført? Hvad skal vi sikre os sker i kode-blokken? Hvordan vil du skrive en while-statement, som skriver alle lige tal mellem 0 og 20 ud på skærmen? Hvilke fire elementer bør vi altid tænke over, når vi skriver en repetition statement? Hvordan er syntaksen for en for-statement? Er dette en lovlig for-statement: for ( ; ; ) {}? Hvad vil der ske, hvis den køres? Er der noget vi kan med en for-statement, som vi ikke kan med en while-statement (eller omvendt)? Hvis index er en variabel af typen int, hvad betyder det så, når vi skriver index++?
Spørgsmål #8 Collections (List, Dictionary) Hvad er collections generelt set nyttige for? Jeg vil gerne erklære en List, som kan rumme elementer af typen double. Hvordan skriver jeg det i C#? Hvordan kan jeg komme et nyt element ind i en List? Hvordan kan jeg referere til et element i en List? Kan jeg have flere elementer med samme værdi i en List? Hvem holder styr på, om der er plads nok i en List til de elementer jeg sætter ind? Hvordan kan jeg slette et element fra en List? Hvad er en Dictionary? Hvordan er den forskellig fra en List? Hvornår er det en god idé at benytte en Dictionary fremfor en List? Hvordan kan jeg finde ud af, om en Dictionary rummer et element med en given nøgle? Hvordan kan jeg slette et element fra en Dictionary? Kan jeg have flere elementer med samme nøgle i en Dictionary? Hvordan kan jeg skrive alle elementer i en List ud? Hvordan skriver jeg elementerne i en Dictionary ud?
Spørgsmål #9 Exceptions og kode-kvalitet Hvad går DRY-princippet ud på? Hvordan kan vi bruge DRY-princippet m.h.t. talværdier? Hvordan kan vi bruge DRY-princippet m.h.t. metoder? Hvordan kan vi bruge DRY-princippet m.h.t. klasser? Giv nogle eksempler på fejl, der kan opstå under kørsel af en applikation. Hvilke faser kan man opdele fejlhåndtering i? Hvad er en exception generelt set? Hvad kan vi gøre med et Exception objekt? Hvornår bør man kaste (throw) en exception? Hvornår bør man gribe (catch) en exception? Hvordan kan flere dele af koden håndtere den samme exception? Hvordan kan jeg lave mine egne exception-klasser?
Spørgsmål #10 Data Binding, Commands og MVVM Hvad går Data Binding generelt set ud på? I en MVVM (Model-View-ViewModel) applikation, hvor vil man så typisk definere sine bindinger? I en MVVM (Model-View-ViewModel) applikation, hvor vil man så typisk definere properties som GUI-kontroller kan binde sig til? Hvis jeg har en TextBox kontrol, hvis indhold jeg gerne vil binde til en property, hvordan skriver jeg så dette i XAML? Hvad er forskellen på one-way og two-way binding? Hvis værdien af en property bliver ændret, hvad bør denne property så gøre, for at andre som er bundet til samme property bliver opmærksomme på ændringen? Hvis vi gerne vil vise en samling af objekter i et ListView, hvilke properties på et ListView er så specielt relevante at definere bindinger for? I en MVVM applikation, hvad forstår vi så med en command? Hvordan kan en command aktiveres fra GUI en? Hvordan holder vi styr på, om en given command overhovedet må udføres?