Visual C# 2012 Grundkurs

Enum

Testen Sie unsere 1931 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit einem Enum-Schlüsselwort wird eine Enumeration definiert. Dabei handelt es sich um einen eigenen Datentyp, welcher aus einer Gruppe benannter Konstanten besteht.

Transkript

In diesem Abschnitt möchte ich über ENUMs sprechen. ENUMs sind so ähnlich wie Class und Struct usw., Arten von Datentypen, die sie definieren können. Das möchte ich jetzt zeigen. Wenn man einen ENUM definiert, verwendet man eben dieses ENUM-Schlüsselwort, dann vergebe ich einen Namen und genauso wie bei Klassen und Structs eben diese geschweiften Klammern. Und jetzt kann so ein ENUM Elemente haben. Also, das ist jetzt irgendwie ein Job und das wäre jetzt für eine Applikation, die bestimmte Jobs zu tun hat. Das wäre z.B. "Check structure", "Get new data" und "Re-render pages", irgendwie so. Also, das wäre eine Applikation, die hat bestimmte Dinge zu tun und so eine Jobstruktur, die könnte jetzt beschreiben, was diese Applikation tatsächlich jetzt zu tun hat. Und jetzt kann ich also Variablen von diesem Typ "Job" anlegen. Job "Job", "Equals". "New" brauche ich in dem Fall nicht, sondern ich kann eines dieser Elemente von dieser Job-Enum jetzt zuweisen. Also z.B. Check structure. Und jetzt kann ich eben genau so damit arbeiten, wie wenn das jetzt irgendein Wert gewesen wäre, irgendeine Zahl oder so. Ich kann also z.B. schreiben: "If Job=Job.check structure". Also kann ich dann irgendwelche Ausgaben davon abhängig machen, wie diese Variable "Job" gesetzt ist. Wenn ich das jetzt kompiliere und laufen lasse, dann wird ebenso dieser Job "Check structure" ausgeführt. Auch die Switch-Anweisungen von C-Sharp kann man verwenden; also ich könnte jetzt statt diesem If-Befehl hier so eine switch-Anweisung schreiben, "Switch job", und dann kann ich hier verschiedene Fälle einfügen. "Case" - das IntelliSense zeigt mir jetzt gleich an, dass diese "Case"-Fälle wohl irgendeine - ah, Moment mal, ich muss jetzt hier natürlich das kleingeschriebene "job" verwenden. Das IntelliSense zeigt mir jetzt schon die Möglichkeiten an, die ich habe; ich brauche jetzt nur noch hier "check structure" nehmen, muss dann noch diese Break-Anweisung schreiben und jetzt muss ich gerade mal schauen -- aha, die Switch-Anweisung braucht natürlich dieses "Job" in Klammern. Jetzt kann ich für die verschiedenen Fälle kann ich jetzt verschiedene Aktionen programmieren. Also, Sie sehen, mit dieser Enum Geschichte kann man also Dinge einfach mal benennen und dann mit diesem Namen arbeiten. Ich führe das gerade mal aus, also dieses "Check structure" wird jetzt eben ausgeführt, weil ich ja eben diesen Job auf "Check structure" gesetzt habe und jetzt, wenn ich es jetzt auf "Get new data" setze, dann wird eben hier "Get new data" ausgeführt. Was auch funktioniert, das ist die Umwandlung in "Strings", also kann ich jetzt z.B. "Consul.right line" ausführen hier und da würde dann eben dieser "Get new data" String herauskommen. Aber tatsächlich ist es ja jetzt so, dass unter der Haube hier mit integer-Werten gearbeitet wird. Das kann ich relativ leicht forcieren, indem ich diesem Job einfach mal einen integer umwandle. Dann bekomme ich da nämlich einen integer-Wert ohne Probleme. Wenn ich jetzt hier einen anderen Wert zuweise, z.B. "Check structure", dann bekomme ich hier den Wert 0. Die Werte werden von 0 ausgehend einfach durchnummeriert: 0, 1, 2. Das kann ich aber ändern. Ich kann also sagen, das sollen diese Werte sein. Da sehen Sie dann, dass tatsächlich also unter der Haube eben immer integer-Werte verwendet werden. Wenn ich das jetzt laufen lasse, kommt dann diese zugewiesene Wert. Das ist jetzt wunderbar und diese Möglichkeit, hier Werte zuzuweisen, kann man jetzt z.B. nutzen, um "Flags" zu setzen. Da setzen wir jetzt einzelne bits von einem integer-Wert. Das ist das bit 0, das ist das Bit 1 usw. Und dann kann man auch binäre Operationen darauf ausführen. Also könnte ich z.B. sagen, ich habe auszuführen den Job "Check structure" und "Get new data", aber "Re-run the page" will ich jetzt nicht machen. Jetzt kann ich irgendwann fragen "If job" und "Get new data" ungleich 0 und jetzt merkt man eben, es gibt hier jetzt keine definierte 0, also muss ich was anderes machen, ist gleich job.getNewData. Das ist die richtige Art und Weise, wie man damit umgehen kann und dann kann ich hier darauf reagieren. Jetzt muss ich nochmal schauen, dass ich hier diese Geschichte hier mal in Klammern kapsle, damit der Compiler auch zufrieden ist. So wird es also geschrieben. Solche Konstrukte kann man jetzt eben für alle denkbaren Mitglieder erzeugen. Nehme ich den letzten Fall auch noch dazu. "Re-run the page". Wenn ich das jetzt ausführe, also ich habe ja jetzt den Wert "Check structure" verodert mit "Get new data", D.h. der Wert vom Job beträgt jetzt hier 3. Das kann ich auch schnell beweisen, indem ich diese Variable in den "int" konvertiere und mal ausgebe. Der beträgt jetzt dann 3, D.h. hier kann ich eben mit diesem Wert "Get new data" eine "und"-Funktion ausführen und "Get new data" ist 2; und 3 und 2, also binär errechnet ergibt 2 und das ist dann genau "Get new data" halt hier sim. Deswegen würde dieser Teil hier ausgeführt werden und entsprechend eben mit den anderen. "Re-run the page", das wird hier nicht ausgeführt, weil es halt hier nicht gesetzt ist, in der Zeile. Das führen wir dann jetzt mal aus und man sieht also, der Wert ist 3, wie ich schon prophezeit habe, und "Get new data" und "Check structure" werden ausgeführt. Entsprechend, wenn ich jetzt hier was anderes setze, "Re-run the page" und "Get new data", dann werden eben diese Sachen ausgeführt. So kann man mit Enums sehr schön Dinge benennen und hinterher wieder abfragen, ob eine Variable einem bestimmten Namen entspricht. Eine wunderschöne Möglichkeit, Aufzählungen zu machen, ohne jetzt irgendwelche Konstanten deklarieren zu müssen und dann immer mit diesen Konstanten zu hantieren.

Visual C# 2012 Grundkurs

Schreiben Sie eigene Programme in C# und lernen Sie dazu alle Schlüsselwörter und die meisten Konstrukte kennen, um sicher mit dieser Programmierspreche umzugehen.

7 Std. 1 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!