0Pricing
C# Academy · Lekcja

Konwersja i parsowanie typów wyliczeniowych

Konwertuj typy wyliczeniowe, liczby całkowite i ciągi znaków między sobą.

Konwersja i parsowanie typów wyliczeniowych to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 3 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.

Enum na liczbę całkowitą

Enum można rzutować na jego typ bazowy za pomocą (int), aby uzyskać wartość liczbową.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        int n = (int)Level.High;
        Console.WriteLine(n);
    }
}

Liczba całkowita na enum

Liczbę można zrzutować z powrotem na typ enum. Wartość nie musi odpowiadać zdefiniowanej składowej, dlatego w razie potrzeby należy ją sprawdzić.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = (Level)2;
        Console.WriteLine(l);
    }
}

Sprawdzanie za pomocą IsDefined

Enum.IsDefined potwierdza, że liczba lub nazwa odpowiada rzeczywistej składowej, zanim zostanie użyta.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Console.WriteLine(Enum.IsDefined(typeof(Level), 1));
        Console.WriteLine(Enum.IsDefined(typeof(Level), 9));
    }
}

Enum na ciąg znaków

ToString zwraca nazwę składowej, co jest przydatne podczas wyświetlania i rejestrowania informacji.

using System;

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

Parsowanie z ciągu znaków

Enum.Parse przekształca nazwę z powrotem w wartość enum, ale zgłasza wyjątek, jeśli nazwa jest nieprawidłowa.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = (Level)Enum.Parse(typeof(Level), "High");
        Console.WriteLine(l);
    }
}

Parsowanie generyczne

Forma generyczna Enum.Parse<T> pozwala uniknąć rzutowania i zapewnia czytelny kod.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = Enum.Parse<Level>("Medium");
        Console.WriteLine(l);
    }
}

Bezpieczne parsowanie za pomocą TryParse

Enum.TryParse zwraca wartość bool informującą o powodzeniu zamiast zgłaszać wyjątek, dzięki czemu jest bezpieczniejsza w przypadku danych wprowadzanych przez użytkownika.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        if (Enum.TryParse<Level>("Low", out var result))
            Console.WriteLine("Parsed: " + result);
    }
}

Obsługa nieprawidłowych danych

Gdy parsowanie się nie powiedzie, TryParse zwraca wartość false, dzięki czemu można zareagować w kontrolowany sposób.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        bool ok = Enum.TryParse<Level>("Unknown", out var result);
        Console.WriteLine(ok ? result.ToString() : "Invalid input");
    }
}

Parsowanie bez uwzględniania wielkości liter

Proszę przekazać wartość true, aby podczas parsowania ignorować wielkość liter.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level l = Enum.Parse<Level>("high", true);
        Console.WriteLine(l);
    }
}

TryParse lepsze niż IsDefined w przypadku nazw

Podczas parsowania nazw TryParse sprawdza poprawność i wykonuje konwersję w jednym wywołaniu.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        string input = "Medium";
        if (Enum.TryParse<Level>(input, out var lvl) && Enum.IsDefined(typeof(Level), lvl))
            Console.WriteLine("Valid: " + lvl);
    }
}

Konwersje w obie strony

Można konwertować enum na int i z powrotem albo na ciąg znaków i z powrotem, o ile wartości są prawidłowe.

using System;

enum Level { Low, Medium, High }
class Program {
    static void Main() {
        Level start = Level.High;
        int num = (int)start;
        Level back = (Level)num;
        Console.WriteLine(start == back);
    }
}

Szybki test

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

Podsumowanie

Enum można rzutować na jego bazową liczbę całkowitą i odwrotnie za pomocą (int) oraz (EnumType), a do sprawdzania poprawności służy Enum.IsDefined. ToString zwraca nazwę składowej.

Nazwy można z powrotem przekształcać za pomocą Enum.Parse<T> (zgłasza wyjątek) lub bezpieczniejszej metody Enum.TryParse<T> (zwraca wartość bool), opcjonalnie bez uwzględniania wielkości liter.

Często zadawane pytania

Czy lekcja „Konwersja i parsowanie typów wyliczeniowych” jest bezpłatna?

Tak — pełny tekst „Konwersja i parsowanie 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 „Konwersja i parsowanie typów wyliczeniowych”?

Konwertuj typy wyliczeniowe, liczby całkowite i ciągi znaków między sobą. Ć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 3 z 4.

Ile czasu zajmuje lekcja „Konwersja i parsowanie 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