Enumeratorit
Pyyhkäise näyttääksesi valikon
Enum, eli enumerointi, on rakenne, jolla ryhmitellään yhteen kokonaislukuvakioita. Vakiot ovat käytännössä tyyppiä int.
Seuraavassa on syntaksi enum-rakenteen luomiseen:
index.cs
1234567enum EnumName { Const1, Const2, Const3, ... }
Oletuksena enum-rakenteen ensimmäisen alkion arvo on 0, toisen arvo on 1 ja niin edelleen.
Esimerkiksi:
index.cs
12345678910enum Days { Monday, // 0 Tuesday, // 1 Wednesday, // 2 Thursday, // 3 Friday, // 4 Saturday, // 5 Sunday // 6 }
Näiden vakioiden arvoihin pääsee käsiksi käyttämällä syntaksia enumName.constantName.
Esimerkiksi:
index.cs
123456789101112131415161718192021222324using System; enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } class ConsoleApp { static void Main(string[] args) { // Explicitly converting the enum elements to 'int' and then outputting them Console.WriteLine((int)Days.Monday); // 0 Console.WriteLine((int)Days.Wednesday); // 2 Console.WriteLine((int)Days.Friday); // 4 Console.WriteLine((int)Days.Sunday); // 6 } }
Huomaa, että yllä olevassa esimerkissä sinun täytyy nimenomaisesti muuntaa vakio int-tietotyypiksi, koska nämä vakiot ovat oletuksena tyyppiä Days. Tämä tarkoittaa, että enumeraatio Days on uusi tietotyyppi, jonka loit. Siksi se voidaan tallentaa muuttujaan, jonka tyyppi on Days:
Days day = Days.Friday;
Tämä on hyödyllistä esimerkiksi switch-lauseissa.
Esimerkki:
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748using System; enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } class ConsoleApp { static void Main(string[] args) { Days day = Days.Friday; switch (day) { case Days.Monday: Console.WriteLine("It is Monday"); break; case Days.Tuesday: Console.WriteLine("It is Tuesday"); break; case Days.Wednesday: Console.WriteLine("It is Wednesday"); break; case Days.Thursday: Console.WriteLine("It is Thursday"); break; case Days.Friday: Console.WriteLine("It is Friday"); break; case Days.Saturday: Console.WriteLine("It is Saturday"); break; case Days.Sunday: Console.WriteLine("It is Sunday"); break; default: Console.WriteLine("Invalid Day"); break; } } }
Voit myös määrittää arvot enum-vakioille manuaalisesti. Määrittämättömät vakiot saavat edellisten elementtien arvoa seuraavat kasvavat arvot:
index.cs
123456789101112131415161718192021222324252627using System; enum Days { Monday, Tuesday, Wednesday = 5, Thursday, Friday, Saturday = 10, Sunday } class ConsoleApp { static void Main(string[] args) { // Explicitly converting the enum elements to 'int' and then outputting them Console.WriteLine((int)Days.Monday); Console.WriteLine((int)Days.Tuesday); Console.WriteLine((int)Days.Wednesday); Console.WriteLine((int)Days.Thursday); Console.WriteLine((int)Days.Friday); Console.WriteLine((int)Days.Saturday); Console.WriteLine((int)Days.Sunday); } }
1. Mikä on enum C#:ssa?
2. Mitä avainsanaa käytetään enum-tyypin määrittelyyn?
3. Mikä on enum-tyypin arvojen oletusarvoinen taustatyyppi?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme