Nowy temat o "CSharpie" na stronie głównej! "Parsowanie". Mówi Wam to coś? To jest coś, co ma związek z transformowaniem danych z jednego typu do drugiego typu. I tak się składa, że metoda "Parse" w języku C# ma z tym wiele wspólnego. Poznajcie sposób w jaki sposób konwertować dane przy użyciu "Parse".

"CONSOLECOLOR" W JĘZYKU C# NADA TWOJEJ KONSOLI NOWY WYGLĄD!

Tutaj mały znak ostrzegawczy! "Parse" nie występuje jako metoda samodzielna, tylko pochodzi ona z każdego typu danych. Konkretniej mam na myśli to:

int.Parse();

Czyli odwołujemy się najpierw do typu (najłatwiej poprzez jego alias np. "int" jest aliasem dla "Int32") i z jego poziomu wywołujemy metodę "Parse" w języku C#.

Teraz mogę spokojnie rozpocząć temat.

TO JESZCZE RAZ. O CO W OGÓLE CHODZI?

"Parse" to metoda statyczna (a więc nie potrzeba żadnych instancji!) podejmująca próbę przekonwertowania łańcucha znaków na daną innego docelowego typu np. liczba całkowita "int". Zwracam uwagę, napisałem "podejmująca próbę". Oznacza to, że konwersja może się nie powieść, a metoda może się wysypać i zgłosić wyjątek! Metoda może się przydać podczas programowania odczytu danych z pliku (do czego niedługo dojdziemy), gdzie w zdecydowanej większości przypadków ma miejsce konieczność przekonwertowania wartości na pożądany typ. A skąd taka, a nie inna nazwa metody?

Proces wydobywczy danych z łańcucha znaków nazywa się "parsowaniem" więc jeśli gdzieś w kręgach informatycznych usłyszycie, że ktoś "sparsował" dane, to nie bierzcie go od razu za wariata albo za pijanego. Prawdopodobnie chodzić będzie po przełożeniu na polski, że udało się skonwertować czy też wydobyć dane z jednego typu i prawidłowo przenieść do drugiego typu. Dlatego macie nazwę "Parse", a nie "Kabaczek".

PRZYKŁAD KODU ŹRÓDŁOWEGO

Rozpatrzmy prostą sytuację w której otrzymaliśmy tablicę łańcuchów znaków i musimy wydobyć z nich wartości przerabiając je na liczby, dajmy na to, "sbyte" (dla małej różnorodności). Możemy nasze zadanie wykonać w następujący sposób:

string[] data = {"56", "83", "13", "-68"};
sbyte[] values = new sbyte[data.Length];
int summary = 0;

for (int i = 0; i < data.Length; ++i)
{
	values[i] = sbyte.Parse(data[i]);
}

foreach (sbyte v in values)
{
	Console.WriteLine(v);

	summary += v;
}

Console.WriteLine("SUMA WSZYSTKICH WARTOŚCI: {0}", summary);

LISTA ODPOWIEDNIKÓW METODY "PARSE" W JĘZYKU C#

Zaprezentuję na wszelki wypadek listę wywołań z poziomu każdego obsługiwanego typu danych. W każdym przypadku występuje forma jednoargumentowa w postaci przekazania łańcucha znaków jako "wejście". Dodam, że wejściem zawsze jest tylko "string". Tu nie ma takich kombinacji jak np. z "double" na "byte", z "uint" na "float" itd. Od tego macie klasę "Convert":

Nazwa Znaczenie
sbyte.Parse konwersja na typ "sbyte"
byte.Parse konwersja na typ "byte"
short.Parse konwersja na typ "short"
ushort.Parse konwersja na typ "ushort"
int.Parse konwersja na typ "int"
uint.Parse konwersja na typ "uint"
long.Parse konwersja na typ "long"
ulong.Parse konwersja na typ "ulong"
float.Parse konwersja na typ "float"
double.Parse konwersja na typ "double"
decimal.Parse konwersja na typ "decimal"

Metoda "Parse" w języku C#

"Parse" jest metodą dokonującą próby przekonwertowania danej z łańcucha znaków do innego typu. Każda próba może skończyć się zgłoszeniem wyjątku!


Radzę nieco dłużej przyjrzeć się metodzie "Parse" w języku C#. Nie chodzi już o to, czy jest to temat należący do podstawowego zestawu wiedzy, tylko o fakt że może Wam się bardzo przydać. Odczyt danych z pliku tekstowego to tylko jeden z dostępnych wariantów.

PODOBNE ARTYKUŁY