0Pricing
C# Academy · Lekcja

Definiowanie i używanie typów wyliczeniowych

Twórz typy wyliczeniowe z wartościami jawnymi i niejawnymi.

Definiowanie i używanie typów wyliczeniowych to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Czym jest enum

enum to nazwany zestaw powiązanych stałych. Zwiększa czytelność kodu, zastępując magiczne liczby znaczącymi nazwami.

using System;

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

Deklarowanie enum

Enum deklaruje się za pomocą słowa kluczowego enum i listy jego składowych. Domyślnie pierwsza składowa ma wartość 0, następna 1 i tak dalej.

using System;

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

Niestandardowe wartości bazowe

Można przypisać jawne wartości liczbowe. Składowe bez przypisanej wartości kontynuują numerację od poprzedniej wartości.

using System;

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

Wybór typu bazowego

Enumy domyślnie używają typu int, ale można wybrać inny typ całkowity, na przykład byte, aby zaoszczędzić miejsce.

using System;

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

Enumy w zmiennych

Typu enum można używać, tak jak każdego innego typu, dla zmiennych, parametrów i pól.

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

Enumy w switch

Enumy świetnie współpracują z switch, umożliwiając czytelne i wyczerpujące rozgałęzienia.

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

Porównywanie wartości enum

Wartości enum można porównywać za pomocą == i operatorów porównania, zgodnie z ich liczbami bazowymi.

using System;

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

Domyślna wartość enum

Niezainicjowany enum jest równy składowej o wartości 0. Dobrą praktyką jest przypisanie wartości 0 sensownej wartości domyślnej, takiej jak None.

using System;

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

Wyświetlanie nazw enum

Wywołanie ToString lub wyświetlenie enuma pokazuje nazwę składowej, co jest znacznie czytelniejsze niż sama liczba.

using System;

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

Enumy zwiększają czytelność

W porównaniu z przekazywaniem zwykłych liczb całkowitych enumy dokumentują intencję i zapobiegają użyciu nieprawidłowych wartości.

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

Gdzie deklarować enumy

Enumy można umieszczać na poziomie przestrzeni nazw lub wewnątrz klasy. Należy trzymać je w pobliżu kodu, który z nich korzysta.

using System;

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

Szybki test

Proszę sprawdzić swoją wiedzę na temat enumów.

Podsumowanie

Typ enum definiuje zestaw nazwanych stałych, zwiększając czytelność w porównaniu z magicznymi liczbami. Składowe domyślnie mają wartości 0, 1, 2... Można jednak przypisać im jawne wartości, a nawet zmienić bazowy typ całkowity.

Enumy dobrze sprawdzają się w zmiennych, instrukcjach switch i porównaniach, wyświetlają nazwy swoich składowych i domyślnie przyjmują składową o wartości 0.

Często zadawane pytania

Czy lekcja „Definiowanie i używanie typów wyliczeniowych” jest bezpłatna?

Tak — pełny tekst „Definiowanie i używanie typów wyliczeniowych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Definiowanie i używanie typów wyliczeniowych”?

Twórz typy wyliczeniowe z wartościami jawnymi i niejawnymi. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C# Academy?

Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Definiowanie i używanie typów wyliczeniowych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?

Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Definiowanie i używanie typów wyliczeniowych
  2. Typy wyliczeniowe Flags i kombinacje bitowe
  3. Konwersja i parsowanie typów wyliczeniowych
  4. Iterowanie po wartościach typu wyliczeniowego
← Powrót do C# Academy