1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz
2 Napok nap = Napok.Hetfo; if (nap==Napok.Kedd)... Napok nap = Napok.Hetfo; if (nap==Napok.Kedd)... enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } A „Napok” úgy viselkedik, mintha egy osztály lenne, a „Hetfo”, … pedig mintha konstansok lennének.
3 Napok nap = Napok.Hetfo; Console.WriteLine( nap ); // ”Hetfo”; Napok nap = Napok.Hetfo; Console.WriteLine( nap ); // ”Hetfo”; enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } A Microsoft.NET ‘intelligens’ ahhoz, hogy a képernyőn ilyenkor az enum belső neve, a ”Hetfo” jelenjen meg, hiszen a ‘nap’ változónak ez az értéke.
4 Napok nap; string s = Console.ReadLine(); if (s==”Hetfo”) nap = Napok.Hetfo; Napok nap; string s = Console.ReadLine(); if (s==”Hetfo”) nap = Napok.Hetfo; enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } Ha a ‘nap’ változó értékét billentyűzetről kívánjuk feltölteni, akkor ez az egyik lehetséges megoldás… string s = Console.ReadLine(); nap = (Napok)Enum.Parse(typeof(Napok),s); string s = Console.ReadLine(); nap = (Napok)Enum.Parse(typeof(Napok),s); Ez a másik … Bár ezzel vigyázni kell, mert ha nem megfelelő az ‘s’ string tartalma (nem felismerhető), akkor ez futás közbeni hibát (Exception) fog okozni!
5 int kod = (int)nap;// kod = 0; enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } Lehetőség van ‘int’-é alakítani … nap = (Napok) kod; … és vissza is … Bár ezzel vigyázni kell, mert ha a ‘kod’ értéke nem 0..6, akkor ez futás közbeni hibát (Exception) fog okozni!
6 enum Szinek { Fekete, Barna, Zold=4, Piros } Fekete -> 0 Barna -> 1 Zold -> 4 Piros -> 5 Fekete -> 0 Barna -> 1 Zold -> 4 Piros -> 5 public static void Befest(Szinek c) {... } public static void Befest(Szinek c) {... } Befest( Szinek.Fekete ); Szinek tollSzin = Szinek.Piros; Befest( tollSzin ); Befest( Szinek.Fekete ); Szinek tollSzin = Szinek.Piros; Befest( tollSzin );