Enum-tyyppien määrittely ja käyttö
Luokaa enum-tyyppejä eksplisiittisillä ja implisiittisillä arvoilla.
Enum-tyyppien määrittely ja käyttö on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.
Mikä enum on?
enum on nimetty joukko toisiinsa liittyviä vakioita. Se tekee koodista luettavampaa korvaamalla vaikeaselkoiset taikanumerot merkityksellisillä nimillä.
using System;
enum Direction { North, East, South, West }
class Program {
static void Main() {
Direction d = Direction.East;
Console.WriteLine(d);
}
}Enumin määrittäminen
Enum määritetään enum-avainsanalla, minkä jälkeen sen jäsenet luetellaan. Oletusarvoisesti ensimmäisen jäsenen arvo on 0, seuraavan 1 ja niin edelleen.
using System;
enum Day { Mon, Tue, Wed }
class Program {
static void Main() {
Console.WriteLine((int)Day.Mon);
Console.WriteLine((int)Day.Wed);
}
}Mukautetut taustalla olevat arvot
Voitte määrittää jäsenille omat numeeriset arvot. Ilman määritettyä arvoa olevat jäsenet jatkavat edellisestä arvosta.
using System;
enum Status { Active = 1, Paused = 5, Stopped }
class Program {
static void Main() {
Console.WriteLine((int)Status.Stopped);
}
}Taustalla olevan tyypin valinta
Enumien oletustyyppi on int, mutta voitte valita muun kokonaislukutyypin, kuten byte-tyypin, tilan säästämiseksi.
using System;
enum Level : byte { Low = 1, High = 200 }
class Program {
static void Main() {
Console.WriteLine((byte)Level.High);
}
}Enumit muuttujissa
Voitte käyttää enum-tyyppiä muuttujien, parametrien ja kenttien tyypin tavoin.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Describe(Color c) {
Console.WriteLine("Color is " + c);
}
static void Main() {
Describe(Color.Green);
}
}Enumit switch-lauseessa
Enumit sopivat erinomaisesti yhteen switch-rakenteen kanssa, kun haluatte muodostaa selkeän ja kaikki vaihtoehdot kattavan haarautumisen.
using System;
enum Signal { Stop, Go, Caution }
class Program {
static void Main() {
Signal s = Signal.Go;
switch (s) {
case Signal.Stop: Console.WriteLine("Halt"); break;
case Signal.Go: Console.WriteLine("Move"); break;
default: Console.WriteLine("Slow"); break;
}
}
}Enum-arvojen vertaaminen
Enum-arvoja voi verrata ==- ja järjestysoperaattoreilla niiden taustalla olevien numeroarvojen perusteella.
using System;
enum Priority { Low, Medium, High }
class Program {
static void Main() {
Console.WriteLine(Priority.High > Priority.Low);
}
}Enumin oletusarvo
Alustamattoman enumin arvo vastaa jäsentä, jonka arvo on 0. On hyvä käytäntö tehdä arvosta 0 järkevä oletusarvo, kuten None.
using System;
enum Mode { None, Fast, Slow }
class Program {
static void Main() {
Mode m = default;
Console.WriteLine(m);
}
}Enum-nimien tulostaminen
ToString-kutsun tekeminen tai enumin tulostaminen näyttää jäsenen nimen, mikä on paljon selkeämpää kuin pelkän numeron näyttäminen.
using System;
enum Fruit { Apple, Banana, Cherry }
class Program {
static void Main() {
Console.WriteLine(Fruit.Banana.ToString());
}
}Enumit parantavat luettavuutta
Paljaisiin kokonaislukuihin verrattuna enumit ilmaisevat tarkoituksen selkeästi ja estävät virheelliset arvot.
using System;
enum Size { Small, Medium, Large }
class Program {
static int PriceFor(Size s) {
return s == Size.Large ? 12 : 8;
}
static void Main() {
Console.WriteLine(PriceFor(Size.Large));
}
}Enumien määrittelypaikka
Enumit voivat sijaita nimiavaruuden tasolla tai luokan sisällä. Pitäkää ne lähellä koodia, joka käyttää niitä.
using System;
class Program {
enum Phase { Start, Run, End }
static void Main() {
Console.WriteLine(Phase.Run);
}
}Pikatesti
Testatkaa, miten hyvin ymmärrätte enumien toimintaa.
Kertaus
enum määrittää nimettyjen vakioiden joukon ja parantaa luettavuutta taikanumeroihin verrattuna. Jäsenten oletusarvot ovat 0, 1, 2... , mutta voitte määrittää arvot itse ja jopa vaihtaa taustalla olevan kokonaislukutyypin.
Enumit toimivat erinomaisesti muuttujissa, switch-rakenteissa ja vertailuissa, tulostavat jäsentensä nimet ja käyttävät oletusarvona jäsentä, jonka arvo on 0.
Opi C# tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 93
- Oppitunnit
- 346
Usein kysytyt kysymykset
Onko oppitunti ”Enum-tyyppien määrittely ja käyttö” ilmainen?
Kyllä – oppitunnin ”Enum-tyyppien määrittely ja käyttö” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Enum-tyyppien määrittely ja käyttö”?
Luokaa enum-tyyppejä eksplisiittisillä ja implisiittisillä arvoilla. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Enum-tyyppien määrittely ja käyttö”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C# Academy-oppitunnilla?
Kyllä. Jokainen C# Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Enum-tyyppien määrittely ja käyttö
- Flags-enumit ja bittiyhdistelmät
- Enum-muunnokset ja jäsentäminen
- Enum-arvojen iterointi