C# Academy · Lekcja

Klasa Convert i parsowanie

Parsuj i konwertuj za pomocą Convert i TryParse.

Lekcja 4 z 413 kroki

Klasa Convert i parsowanie to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 4 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.

Konwersja napisów na liczby

Dane wprowadzane przez użytkownika są odbierane jako tekst. Aby wykonywać na nich obliczenia, należy skonwertować napisy na liczby. C# oferuje metody Convert, Parse i TryParse.

using System;

class Program
{
    static void Main()
    {
        string input = "42";
        int number = int.Parse(input);
        Console.WriteLine(number + 8);
    }
}

int.Parse

int.Parse konwertuje napis zawierający liczbę na wartość typu int. Jeśli tekst nie jest poprawną liczbą, zgłasza wyjątek FormatException.

using System;

class Program
{
    static void Main()
    {
        try
        {
            int n = int.Parse("abc");
            Console.WriteLine(n);
        }
        catch (FormatException)
        {
            Console.WriteLine("Not a valid number");
        }
    }
}

int.TryParse

int.TryParse pozwala uniknąć wyjątków: po pomyślnym zakończeniu zwraca true i umieszcza wynik w parametrze out, a po niepowodzeniu zwraca false.

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("123", out int n))
            Console.WriteLine("Parsed: " + n);
        else
            Console.WriteLine("Failed");
    }
}

TryParse dla bezpiecznego wprowadzania danych

TryParse jest preferowanym sposobem obsługi niezaufanych danych wejściowych, ponieważ niepoprawny tekst jest obsługiwany poprawnie, zamiast powodować awarię programu.

using System;

class Program
{
    static void Main()
    {
        string[] inputs = { "10", "oops", "30" };
        int total = 0;
        foreach (var s in inputs)
        {
            if (int.TryParse(s, out int v))
                total += v;
        }
        Console.WriteLine("Total of valid: " + total);
    }
}

Klasa Convert

Klasa Convert konwertuje wiele typów podstawowych, między innymi za pomocą metod Convert.ToInt32, Convert.ToDouble i Convert.ToBoolean.

using System;

class Program
{
    static void Main()
    {
        int i = Convert.ToInt32("256");
        double d = Convert.ToDouble("3.14");
        bool b = Convert.ToBoolean("true");
        Console.WriteLine(i + ", " + d + ", " + b);
    }
}

Convert obsługuje null

W przeciwieństwie do int.Parse wywołanie Convert.ToInt32(null) zwraca 0 zamiast zgłaszać wyjątek, co może być wygodne, ale także zaskakujące.

using System;

class Program
{
    static void Main()
    {
        string s = null;
        int n = Convert.ToInt32(s);   // returns 0
        Console.WriteLine("Result: " + n);
    }
}

Konwersja między typami liczbowymi

Convert umożliwia również konwersję jednego typu liczbowego na inny, a przy konwersji wartości zmiennoprzecinkowych na całkowite zaokrągla je, zamiast obcinać część ułamkową.

using System;

class Program
{
    static void Main()
    {
        double d = 7.6;
        int cast = (int)d;             // truncates -> 7
        int converted = Convert.ToInt32(d);   // rounds -> 8
        Console.WriteLine("cast=" + cast + ", convert=" + converted);
    }
}

Parsowanie innych typów

Większość typów wbudowanych ma własne metody Parse/TryParse, takie jak double.TryParse, bool.TryParse czy DateTime.TryParse.

using System;

class Program
{
    static void Main()
    {
        bool okD = double.TryParse("2.5", out double d);
        bool okB = bool.TryParse("True", out bool flag);
        Console.WriteLine(okD + ":" + d + ", " + okB + ":" + flag);
    }
}

ToString w odwrotnym kierunku

Aby przekształcić liczbę z powrotem w tekst, należy wywołać ToString(), opcjonalnie przekazując napis formatujący.

using System;

class Program
{
    static void Main()
    {
        int n = 255;
        double price = 12.5;
        Console.WriteLine(n.ToString());
        Console.WriteLine(price.ToString("C"));   // currency format
    }
}

Wybór właściwego narzędzia

Należy używać TryParse w przypadku niezaufanych danych wprowadzanych przez użytkownika, Parse, gdy dane wejściowe na pewno są poprawne, oraz Convert podczas obsługi wartości null lub konwersji między wieloma typami.

using System;

class Program
{
    static void Main()
    {
        string userInput = "55x";
        int value = int.TryParse(userInput, out int v) ? v : -1;
        Console.WriteLine(value == -1 ? "Invalid input" : "Got " + value);
    }
}

Podsumowanie całości

Solidny sposób obsługi danych wejściowych polega na ich sprawdzeniu za pomocą TryParse, użyciu wartości domyślnej w razie niepowodzenia, a następnie bezpiecznym wykonaniu obliczeń.

using System;

class Program
{
    static int ReadAge(string input)
    {
        if (int.TryParse(input, out int age) && age >= 0)
            return age;
        return 0;   // safe default
    }

    static void Main()
    {
        Console.WriteLine("Age: " + ReadAge("28"));
        Console.WriteLine("Age: " + ReadAge("bad"));
    }
}

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat parsowania i konwersji.

Powtórzenie

Tekst można konwertować na liczby za pomocą int.Parse (zgłasza wyjątek dla niepoprawnych danych), int.TryParse (bezpieczna metoda zwracająca wartość bool oraz wartość w parametrze out) lub klasy Convert (obsługuje null, zaokrągla liczby zmiennoprzecinkowe i konwertuje wiele typów). W przypadku niezaufanych danych wejściowych należy preferować TryParse, a w odwrotnym kierunku używać ToString().

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("99", out int n))
            Console.WriteLine("Value: " + n);
        Console.WriteLine("Convert: " + Convert.ToInt32("7"));
    }
}
Bezpłatny start

Ucz się C# dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
93
Lekcje
346

Często zadawane pytania

Czy lekcja „Klasa Convert i parsowanie” jest bezpłatna?

Tak — pełny tekst „Klasa Convert i parsowanie” 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 „Klasa Convert i parsowanie”?

Parsuj i konwertuj za pomocą Convert i TryParse. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Klasa Convert i parsowanie”?

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. Typy wartości a typy referencyjne
  2. Boxing i unboxing
  3. Konwersje niejawne i jawne
  4. Klasa Convert i parsowanie
← Powrót do C# Academy