Klasa Convert i parsowanie
Parsuj i konwertuj za pomocą Convert i TryParse.
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"));
}
}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
- Typy wartości a typy referencyjne
- Boxing i unboxing
- Konwersje niejawne i jawne
- Klasa Convert i parsowanie