C# Academy · Lektion

Definiera och använda enum-typer

Skapa enum-typer med uttryckliga och implicita värden.

Lektion 1 av 413 steg

Definiera och använda enum-typer är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 4 lektioner.

Vad är en enum?

En enum är en namngiven uppsättning relaterade konstanter. Den gör koden lättare att läsa genom att ersätta magiska tal med meningsfulla namn.

using System;

enum Direction { North, East, South, West }
class Program {
    static void Main() {
        Direction d = Direction.East;
        Console.WriteLine(d);
    }
}

Deklarera en enum

Du deklarerar en enum med nyckelordet enum och listar dess medlemmar. Som standard får den första värdet 0, nästa 1 och så vidare.

using System;

enum Day { Mon, Tue, Wed }
class Program {
    static void Main() {
        Console.WriteLine((int)Day.Mon);
        Console.WriteLine((int)Day.Wed);
    }
}

Anpassade underliggande värden

Du kan tilldela explicita tal. Medlemmar utan tilldelat värde fortsätter från föregående värde.

using System;

enum Status { Active = 1, Paused = 5, Stopped }
class Program {
    static void Main() {
        Console.WriteLine((int)Status.Stopped);
    }
}

Välja underliggande typ

Enum använder int som standard, men du kan välja en annan heltalstyp, till exempel byte, för att spara utrymme.

using System;

enum Level : byte { Low = 1, High = 200 }
class Program {
    static void Main() {
        Console.WriteLine((byte)Level.High);
    }
}

Enum i variabler

Använd en enum-typ precis som vilken annan typ som helst för variabler, parametrar och fält.

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);
    }
}

Enum i switch

Enum passar utmärkt med switch för tydliga och heltäckande grenar.

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;
        }
    }
}

Jämföra enum-värden

Enum-värden kan jämföras med == och ordningsoperatorer utifrån sina underliggande tal.

using System;

enum Priority { Low, Medium, High }
class Program {
    static void Main() {
        Console.WriteLine(Priority.High > Priority.Low);
    }
}

Standardvärde för enum

En oinitierad enum är lika med medlemmen som har värdet 0. Det är god praxis att göra 0 till ett rimligt standardvärde, till exempel None.

using System;

enum Mode { None, Fast, Slow }
class Program {
    static void Main() {
        Mode m = default;
        Console.WriteLine(m);
    }
}

Skriva ut enum-namn

Om du anropar ToString eller skriver ut en enum visas medlemsnamnet, vilket är mycket tydligare än ett rått tal.

using System;

enum Fruit { Apple, Banana, Cherry }
class Program {
    static void Main() {
        Console.WriteLine(Fruit.Banana.ToString());
    }
}

Enum förbättrar läsbarheten

Jämfört med att skicka vanliga heltal dokumenterar enum avsikten och förhindrar ogiltiga värden.

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));
    }
}

Var enum ska deklareras

Enum kan placeras på namnrymdsnivå eller inuti en klass. Behåll dem nära koden som använder dem.

using System;

class Program {
    enum Phase { Start, Run, End }
    static void Main() {
        Console.WriteLine(Phase.Run);
    }
}

Snabbkontroll

Testa din förståelse av enum.

Sammanfattning

En enum definierar en uppsättning namngivna konstanter och förbättrar läsbarheten jämfört med magiska tal. Medlemmarna får som standard värdena 0, 1, 2..., men du kan tilldela explicita värden och även ändra den underliggande heltalstypen.

Enum fungerar bra i variabler, switch-satser och jämförelser, skriver ut medlemsnamnen och använder medlemmen med värdet 0 som standard.

Gratis att börja

Lär dig C# med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
93
Lektioner
346

Vanliga frågor

Är lektionen ”Definiera och använda enum-typer” gratis?

Ja – hela texten till ”Definiera och använda enum-typer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Definiera och använda enum-typer”?

Skapa enum-typer med uttryckliga och implicita värden. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C# Academy?

Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Definiera och använda enum-typer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C# Academy-lektionen?

Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Definiera och använda enum-typer
  2. Flags-enumtyper och bitvisa kombinationer
  3. Konvertering och parsning av enum-typer
  4. Iterera över enum-värden
← Tillbaka till C# Academy