Zoals altijd post ik problemen waar ik na een lange tijd nog geen oplossing voor heb gevonden, nog snel even op GoT.
Nu heb ik niet 1, maar 2 problemen, bijde gerelateerd met de List class.
Probleem 1:
Doel van de oefening: Simuleren drankbak
Als ik een boolean aanpas, die zich in de class flesje bevindt, wordt een List of een Arraylist, die zich in de klasse drankbak bevindt, plotseling null.
Ik heb dit op verschillende computers getest, ik heb al eindeloos veel gedebugt en opnieuw gebuild, maar hetzelfde blijft steeds gebeuren.
Indien ik de lijn code verwijder waar de boolean op false wordt gezet, dan gebeurt er niets verkeerd.
De code (met een Arraylist, maar hetzelfde gebeurt met een list):
Ik heb verschillende mensen met ervaring in .net al eens aangeproken over dit probleem, maar niemand blijkt te weten hoe het komt.
Is er iemand op GoT die de oorzaak en/of een oplossing kent?
Nu heb ik niet 1, maar 2 problemen, bijde gerelateerd met de List class.
Probleem 1:
Doel van de oefening: Simuleren drankbak
Als ik een boolean aanpas, die zich in de class flesje bevindt, wordt een List of een Arraylist, die zich in de klasse drankbak bevindt, plotseling null.
Ik heb dit op verschillende computers getest, ik heb al eindeloos veel gedebugt en opnieuw gebuild, maar hetzelfde blijft steeds gebeuren.
Indien ik de lijn code verwijder waar de boolean op false wordt gezet, dan gebeurt er niets verkeerd.
De code (met een Arraylist, maar hetzelfde gebeurt met een list):
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
| using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Labo6_Drankbak { class Flesje { private String sDrankType; private Boolean xLeeg=false; #region propereties public String DrankType { get { return this.sDrankType; } set { sDrankType = value.ToString(); } } public Boolean Leeg { get { return xLeeg; } } #endregion //properties #region publicFunctions public Flesje(string DrankType) { sDrankType = DrankType; } public void DrinkLeeg2() { xLeeg = true; //<-- Hier loopt het mis } public void SteekTerug(Bak bak) { bak.SteekTerug(this); } #endregion //publicFunctions } class Bak { private string sDranktype; private ArrayList lstFlesjes = new ArrayList(); #region properties public string DrankType { get { return sDranktype; } } public int TotaalAantal { get { return lstFlesjes.Count; } } public int VolAantal { get { int iAantal = 0; foreach (Flesje flesje in lstFlesjes) { if (!flesje.Leeg) iAantal++; } return iAantal; //Tel aantal lege flesjes in lstFlesjes } } #endregion //properties public Bak(String drankType, int grootte) { sDranktype = drankType; Flesje tmpFlesje = new Flesje(drankType); for (int i = 0; i < grootte; i++) { lstFlesjes.Add(tmpFlesje); } } public Flesje Neemflesje() { try { Flesje GenomenFlesje =null; foreach (Flesje flesje in lstFlesjes) { if (!flesje.Leeg) { GenomenFlesje = flesje; } } lstFlesjes.Remove(GenomenFlesje); return GenomenFlesje; } catch { throw new Exception("De bak is leeg"); } } public void SteekTerug(Flesje flesje) { lstFlesjes.Add(flesje); } } } |
Ik heb verschillende mensen met ervaring in .net al eens aangeproken over dit probleem, maar niemand blijkt te weten hoe het komt.
Is er iemand op GoT die de oorzaak en/of een oplossing kent?