Ich war vorhin nur etwas in Eile, deshalb ist mein Post so knapp ausgefallen.
enum ist das Schlüsselwort für eine
Enumeration, also eine Aufzählung. Damit ist eine Art von Datentyp gemeint, die immer genau einen Wert aus einer definierten Liste zulässt.
Wenn du einen Enum deklarierst, gibst du die Werte an, die Variablen dieses Typs annehmen können. Ein Enum "Medium" könnte beispielsweise die Werte "Buch", "Film", "Zeitung" oder "Brief" enthalten. In C# schreibst du das folgendermaßen:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| enum Medium { Buch, Film, Zeitung, Brief } |
Aus den Wörtern in der Auflistung werden automatisch Konstanten definiert, auf die du dann z.B. über
Medium.Zeitung zugreifen kannst.
Medium ist ein Typ, und
Medium.Zeitung eine Instanz dieses Typs. So wie
string und
"Hallo" oder
int und
"42".
Da die Werte ja Konstanten sind, kannst du sie einfach für Zuweisungen verwenden:
C#-Quelltext
1: 2:
| Medium meinBevorzugtesMedium; meinBevorzugtesMedium = Medium.Film; |
Abfragen funktionieren natürlich über
if oder auch per
switch, wobei letzteres bei Enums häufiger verwendet wird.
Flop hat folgendes geschrieben : |
ich glaube in der switch einweisung ist die rechnung oder? |
Ja, die Platzhalter-Kommentare müssen durch die Rechenoperationen ersetzt werden.
Ich hätte noch ein paar weitere Verbesserungsvorschläge für dich
Erstens würde ich die zuerst eingegebene Zahl nicht in der Eigenschaft
Tag speichern. Die ist wirklich nur für Ausnahmefälle gedacht und dann auch nur, wenn man vielen Komponenten irgendwelche Daten zuordnen will. In deinem Fall wäre es besser, ein gut benanntes Feld (also eine Klassenvariable) zu verwenden. Die kann dann vom Typ
decimal sein, was dir einige Umwandlungen spart.
Weiterhin solltest du bei den ButtonClicks nicht direkt den
Text ändern, sondern erst ein weiteres Feld vom Typ
decimal verwenden, das du dann jeweils mit 10 multiplizierst und mit der eingegebenen Zahl addierst. Diese Zahl kannst du dann in einen String umwandeln und die TextBox aktualisieren. Das hat den Vorteil, dass du nie von einem String in eine Zahl konvertieren musst, denn dabei kann es schnell passieren, dass eine Exception auftritt (wenn die Zahl zu lang wird). Außerdem trennst du die Verarbeitung (Berechnung) von der Darstellung (in der TextBox).
Zu guter Letzt könntest du den Code etwas vereinfachen, indem du die
Tag-Eigenschaft doch wieder benutzt, aber diesmal richtig

Und zwar hast du viele Buttons, die im Prinzip etwas sehr ähnliches bewirken, nur mit anderen Werten. Die Buttons 0-9 hängen immer eine Ziffer an, nur der Wert der Ziffer selbst ist immer unterschiedlich. Wenn du jetzt diese Ziffer in die jeweiligen
Tag-Eigenschaften schreibst, kannst du im Click-Event-Handler wiederum darauf zugreifen und weißt sofort, welche Ziffer für den Button vorgesehen ist, ohne den Button selbst zu kennen. Daher reicht eine allgemeine Click-Methode für alle 10 Buttons aus.
Auch die Rechentasten könntest du so gestalten. Dabei speicherst du in der
Tag-Eigenschaft den jeweiligen Wert deines Enums. In der Click-Methode musst du nur noch den Wert von
Tag in das Feld, das die gewählte Operation beinhaltet, übertragen, und natürlich die Dinge tun, die bei allen Rechenoperationen gleich sind (die Zahlen verschieben).
Ich hoffe, das war nicht zu viel auf einmal. Wenn's irgendwo Probleme gibt, einfach nachfragen
Grüße,
Yogu