C# Academy · Oppitunti

Enum-tyyppien määrittely ja käyttö

Luokaa enum-tyyppejä eksplisiittisillä ja implisiittisillä arvoilla.

Oppitunti 1/413 vaihetta

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.

Aloita maksutta

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

  1. Enum-tyyppien määrittely ja käyttö
  2. Flags-enumit ja bittiyhdistelmät
  3. Enum-muunnokset ja jäsentäminen
  4. Enum-arvojen iterointi
← Takaisin: C# Academy