In mijn applicatie heb ik een klasse event. Binnen deze klasse zit een constructor met een x-aantal parameters (type, timestamp, id, whatever). Deze constructor maakt het object aan aan de hand van de parameters die je dus meegeeft.
Nu wil ik echter geen parameters meegeven maar een (ingelezen uit een bestand) event regel, welke dan eerst verwerkt wordt (conversie naar datetime etc), waarna ik dan binnen zijn eigen klasse de andere constructor aan wil roepen.
Wat ik dus wil is 2 constructors, 1 met een List<string> als parameter en 1 met een x-aantal andere velden met verschillende types.
Ik heb eens gekeken naar constructor chaining, echter lijkt het voor mij er op dat ik dan alleen bepaalde velden optioneel kan maken oid, ik vat het niet helemaal.
Wat ik zou willen is dus zoiets (nee dit functioneert niet met this=new Event, maar dat is wel het principe dat ik graag voor elkaar zou willen krijgen)
Nu wil ik echter geen parameters meegeven maar een (ingelezen uit een bestand) event regel, welke dan eerst verwerkt wordt (conversie naar datetime etc), waarna ik dan binnen zijn eigen klasse de andere constructor aan wil roepen.
Wat ik dus wil is 2 constructors, 1 met een List<string> als parameter en 1 met een x-aantal andere velden met verschillende types.
Ik heb eens gekeken naar constructor chaining, echter lijkt het voor mij er op dat ik dan alleen bepaalde velden optioneel kan maken oid, ik vat het niet helemaal.
Wat ik zou willen is dus zoiets (nee dit functioneert niet met this=new Event, maar dat is wel het principe dat ik graag voor elkaar zou willen krijgen)
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| public Event(List<string> eventLine) { DateTime tmp; DateTime.TryParseExact(eventLine[2], "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out tmp); int miliseconds = Convert.ToInt32(eventLine[3].PadRight(6, '0')); this = new Event(EventType.Exception, eventLine[1], tmp, miliseconds, eventLine[5], eventLine[6]); } /// <summary> /// Initializes a new instance of the <see cref="Event"/> class /// </summary> /// <param name="et">Event type</param> /// <param name="trigger">Trigger for transition</param> /// <param name="timestamp">Timestamp of event</param> /// <param name="milliseconds">Number of milliseconds to be added to the timestamp</param> public Event(EventType et, string trigger, DateTime timestamp, int milliseconds, string classification, string severityLevel) { this.id = AdditionalFunctions.GenerateId(); this.type = et; this.trigger = trigger; this.timestamp = timestamp; this.milliseconds = milliseconds; this.breakpoint = false; this.classification = classification; this.severitylevel = severitylevel; } |