Hallo und noch
Außerdem (neben den von Christian genannten Punkten) vermischst du die Klassen:
Ein Spieler enthält eine Wette. Die "Beschreibung abrufen" ist eine Methode der Wette-Klasse. Wie kann sie etwas über den Wetter kennen?
Das Formular enthält u.a. Spieler und TextBoxen. Der Wetter darf nichts über die TextBox des Formulars wissen.
Du musst erheblich genauer darauf achten, dass "abhängige" Klassen keinerlei Informationen haben dürfen über die "übergeordneten" Klassen. Besser wäre etwas wie:
C#-Quelltext
1:
| Gamer[0].BeschreibungAbrufen(); |
In der Spieler-Klasse hast du Zugriff auf MeineWette, kannst diesen Wert also auch in den Rückgabewert einbauen.
Solange die Wette
null ist, kann sie keinen Wert angeben. Das ist etwas anderes als der Wettbetrag 0.
Nebenbei: Solche Initialisierungen passen besser in das
Form.Load-Ereignis. Wenn BeschreibungAbrufen einen String zurückliefert, sollte der auch als Ergebnis benutzt werden. Ich halte so etwas für besser (BeschreibungAbrufen als Teil von Spieler):
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public string BeschreibungAbrufen() { string result; if (Meinewette == null) result = Name + " hat noch nicht gewettet"; else result = Name + " wettet " + Meinewette.Betrag.ToString() + " € auf Hund " + Meinewette.Hund; return result; } |
Es wird dann so aufgerufen:
C#-Quelltext
1:
| textBox2 = Gamer[2].BeschreibungAbrufen(); |
Ich gebe zu, dass ich mir das "vorgegebene" Konzept nicht angeschaut habe. Sollte die Vermischung der Klassen und Controls dort so stehen, wäre das ein miserables Konzept. Aber vielleicht helfen meine Hinweise trotzdem.
Jürgen