T2 - 2022 Flashcards
Na de declaratie int[,] a = new int [1,1]; heeft de array a?
1 element met de waarde 0
een null reference exception treedt op …
Als je een membervariabele gebruikt van een objectvariabele waaraan geen waarde is toegekend.
Iemand schrijft een methode om een getal x tot een niet-negatieve macht n te verheffen:
int Macht(int x, int n)
{
int res = x;
for (int t=1; t<n; t++)
res *= x;
return res;
}
welk ongewenst effect heeft deze methode?
het werkt niet als n gelijk is aan 0.
Iemand schrijft een methode om te kunnen testen of een bepaalde array van characters een
bepaald character bevat:
bool Bevat(char[] a, char x)
{
for (int t=1; t < a.Length; t++)
if (a[t] == x)
return true;
return false;
}
Wat is er fout in deze methode?
Soms wordt de letter niet gevonden terwijl hij wel in de array zit
in C# staat het symbool =>
tussen de parameters en de body van een methode zonder naam.
Dit maakt deel uit van een notatie voor ‘anonieme methodes’, dus methodes zonder naam.
Het is handiger om een char[] te gebruiken in plaats van een string als je …
later individuele letters wil veranderen.
de situatie die ontstaat door class A : B { C D ;} kan beschreven worden door
A heeft een member met type C
In de body van een constructormethode …
kun je membervariabele een beginwaarde geven
In welke context kun je base zinvol gebruiken
in een override methode.
Een interface beschrijft…
de mogelijkheden van een object.
De klasse Control bevat een methode Invalidate.
- Welk effect heeft het aanroepen van deze methode?
- In welke situatie is het zinvol om deze methode aan te roepen.
Invalidate forceert een Paint-event voor de control waarmee je het aanroept. Dat doe je typisch als je de variabelen hebt veranderd die de toestand van het programma voorstellen, en deze toestand moet in beeld gebracht worden.
In de body van een property kunnen een get en een set mini-methode worden gedefinieerd.
* Op welke manier wordt de get-minimethode aangeroepen,
en op welke manier de set-minimethode?
* Welke rol speelt het keyword value daarbij?
De get-minimethode wordt aangeroepen als je de property in een expressie
gebruikt. De set-minimethode wordt aangeroepen als je de property aan de linkerkant van
een toekenningsopdracht gebruikt. Het keyword value heeft dan de waarde van de rechterkant
van die toekenning.
Stel dat je moet voortbouwen op een klasse die een collega-programmeur in je team geschreven
heeft. Je zou een kopie van de sourcecode kunnen maken, de klassenaam veranderen, en de
noodzakelijke uitbreidingen en aanpassingen maken.
* Waarom is dit geen goed idee?
* Hoe moet het dan wel?
Als er later een verandering nodig is in de oorspronkelijke klasse (bijv. een
bugfix), dan moet je die ook in de aangepaste klasse aanbrengen. Dat is dubbel werk.
Je kunt beter een subklasse maken.
In C# bestaat een bijzondere klasse object.
* Welke bijzondere rol heeft de klasse object ?
* Wat heeft dat voor gevolg voor de methodes ervan?
De klasse object is het begin van de subklasse-hi¨erarchie.
De methodes van deze klasse zijn dus toepasbaar op elk type object, en kunnen (als ze virtual
of abstract zijn) in alle klassen worden overriden.