60 likes | 145 Views
Microsoft.NET környezet. Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz. 1. Enumeration. enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap }. A „Napok” úgy viselkedik, mintha egy osztály lenne,
E N D
Microsoft.NET környezet Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz 1
Enumeration 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. Napok nap = Napok.Hetfo; if (nap==Napok.Kedd) ... 2
Enumeration enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } Napok nap = Napok.Hetfo; Console.WriteLine( nap ); // ”Hetfo”; 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. 3
Enumeration 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… Napok nap; string s = Console.ReadLine(); if (s==”Hetfo”) nap = Napok.Hetfo; Ez a másik … string s = Console.ReadLine(); nap = (Napok)Enum.Parse(typeof(Napok),s); 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! 4
Enumeration enum Napok { Hetfo, Kedd, Szerda, Csutoroök, Pentek, Szombat, Vasarnap } Lehetőség van ‘int’-é alakítani … int kod = (int)nap; // kod = 0; … és vissza is … nap = (Napok) kod; 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! 5
Enumeration enum Szinek { Fekete, Barna, Zold=4, Piros } Fekete -> 0 Barna -> 1 Zold -> 4 Piros -> 5 public static void Befest(Szinek c) { ... } Befest( Szinek.Fekete ); Szinek tollSzin = Szinek.Piros; Befest( tollSzin ); 6