Stel ik heb de volgende constructor:
Vervolgens bouw ik een constructor met een extra parameter:
Nu wil ik dat bij het aanroepen van de tweede constructor eerst de code van deze constructor wordt uitgevoerd voordat ik de twee parameters 'control' en 'action' naar de andere constructor stuur. Ik heb geprobeerd om de volgende wijziging te maken:
Het probleem is dat wanneer ik 'this(control,action)' achter de constructor plaats eerst de constructor 'ControlDecorator(Control control, AbstractAction action)' uitvoert voordat hij de rest van de constructor 'ControlDecorator(Control control, AbstractAction action, Size size)' uitvoert.
In java kon je heel mooi in de code van de constructor 'this(control,action);' plaatsen, maar in c# gaat dat niet werken.
In m'n boek kan ik ook zo één twee drie niet vinden hoe ik de volgorde kan wijzigen.
Wie kan mij helpen?
C#:
1
2
3
4
5
6
7
| public ControlDecorator(Control control, AbstractAction action) { _control = control; _action = action; initControl(); } |
Vervolgens bouw ik een constructor met een extra parameter:
C#:
1
2
3
4
5
6
7
8
9
10
| public ControlDecorator(Control control, AbstractAction action, Size size) { _control.Size = size; // control en action naar de andere constructor sturen: // natuurlijk kan ik de code uit de eerste constructor hier naartoe // copieren, maar bij een hoop code is dit niet echt netjes, het moet // ook met 'this' kunnen } |
Nu wil ik dat bij het aanroepen van de tweede constructor eerst de code van deze constructor wordt uitgevoerd voordat ik de twee parameters 'control' en 'action' naar de andere constructor stuur. Ik heb geprobeerd om de volgende wijziging te maken:
C#:
1
2
3
4
5
6
| public ControlDecorator(Control control, AbstractAction action, Size size) : this(control, action) { _control.Size = size; } |
Het probleem is dat wanneer ik 'this(control,action)' achter de constructor plaats eerst de constructor 'ControlDecorator(Control control, AbstractAction action)' uitvoert voordat hij de rest van de constructor 'ControlDecorator(Control control, AbstractAction action, Size size)' uitvoert.
In java kon je heel mooi in de code van de constructor 'this(control,action);' plaatsen, maar in c# gaat dat niet werken.
In m'n boek kan ik ook zo één twee drie niet vinden hoe ik de volgorde kan wijzigen.
Wie kan mij helpen?
edit:
het voorbeeld op zich is niet belangrijk, ik zie namelijk dat er nullpointers op gaan treden, maar ik zou graag willen weten hoe dit opgelost kan worden
het voorbeeld op zich is niet belangrijk, ik zie namelijk dat er nullpointers op gaan treden, maar ik zou graag willen weten hoe dit opgelost kan worden
[ Voor 13% gewijzigd door JeroenTheStig op 02-07-2004 14:48 ]