Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Kiedy deklarujesz nową zmienną w języku C#, zazwyczaj inicjujesz ją określonym typem danych. Może to być liczba całkowita, dziesiętna, logiczna, łańcuch lub inny typ danych.

Możesz przekonwertować wartość z jednego typu danych na inny. Na przykład, jeśli konwertujesz ciąg znaków na liczbę całkowitą, musisz najpierw przeanalizować wartość. Oto kilka różnych sposobów konwertowania i analizowania wartości.

Dlaczego musisz konwertować lub analizować dane?

Przykładem sytuacji, w której może być konieczne przeanalizowanie danych, jest żądanie wprowadzenia danych przez użytkownika w aplikacji konsolowej języka C#:

Konsola. Wiersz zapisu("Wpisz swój wiek:");
ciąg pensja = konsola. Czytaj linię();

W takim przypadku użytkownik wprowadzi wartość całkowitą, ale aplikacja domyślnie zapisze ją jako ciąg znaków. Jeśli spróbujesz użyć wartości ciągu w jakichkolwiek obliczeniach, otrzymasz błąd kompilacji:

instagram viewer

Innym powodem konwersji typów danych jest dostęp do pewnych metod, które są dostępne tylko dla określonego typu danych. Na przykład struktura DateTime zawiera funkcję, która umożliwia dodawanie minut. Gdybyś zamiast tego używał ciągu znaków, nie miałbyś dostępu do metody:

Możesz także chcieć przekonwertować wartość na inny typ danych, jeśli musisz postępować zgodnie ze strukturą typu danych a klasa stworzona w C# lub struktura w C#.

Jak konwertować i analizować różne typy danych

Możesz analizować różne typy danych, takie jak liczby całkowite, liczby podwójne, typy logiczne i typy typu data/godzina.

Ciągi do liczb całkowitych

Aby przekonwertować ciąg znaków na liczbę całkowitą, użyj metody Parse():

string strInt = "45";
int int32 = Int32.Parse (strInt);
Konsola. WriteLine (int32); // wyjście: 45

Możesz również przeanalizować ciąg na liczby całkowite o różnych rozmiarach bitów, takie jak Int16, Int32 lub Int64.

int int16 = Int16.Parse (strInt);
Konsola. WriteLine (int16); // wyjście: 45

Jeśli używasz metody Parse(), upewnij się, że wartość ciągu reprezentuje liczbę całkowitą. Jeśli spróbujesz przeanalizować wartość inną niż liczba całkowita, na przykład „Hello”, w czasie wykonywania wystąpi błąd analizy.

ciąg nieprawidłowyString = "Cześć";
int nieprawidłowy wynik = Int32. Parse (nieprawidłowy ciąg);

Możesz także użyć metody TryParse(), aby przechwycić wszelkie wyjątki, które mogą wystąpić podczas analizowania:

int tryParseResult = 0;

Jeśli (Int32.TryParse(nieprawidłowy ciąg, na zewnątrztryParseResult))
{
Konsola.WriteLine(tryParseResult);
}
w przeciwnym razie
{
Konsola. Wiersz zapisu("Coś poszło nie tak");
}

Aby przekonwertować liczbę całkowitą z powrotem na łańcuch, użyj metody ToString():

string intString = 45.ToString();
Konsola. WriteLine (intString); // wyjście: 45

Ciągi do podwójnych

Przetwarzanie łańcucha na liczbę podwójną jest bardzo podobne do przetwarzania jedynki na liczbę całkowitą. Użyj metody Parse() z klasy Double:

string strDouble = "90.5";
podwójnie d = Podwójne. Przeanalizuj (strDouble);
Konsola. Wiersz zapisu (d); // wyjście: 90,5

Podobnie jak w przypadku liczb całkowitych, możesz również użyć metody TryParse(), aby przechwycić wszelkie błędy analizy, które mogą wystąpić:

łańcuch nieprawidłowyStringDouble = "Cześć";
podwójnie tryParseDouble = 0;

Jeśli (Podwójnie.TryParse(niepoprawnyStringDouble, na zewnątrztryParseDouble))
{
Konsola.WriteLine(tryParseDouble);
}

Aby przekonwertować liczbę podwójną z powrotem na liczbę całkowitą, użyj metody ToString():

podwójnie dPodwójne = 90.5;
string dString = dDouble. ToString();
Konsola. Linia zapisu (dString); // wyjście: 90,5

Podwaja się do liczb całkowitych

Możesz użyć rzutowania, aby przekonwertować liczbę podwójną na liczbę całkowitą. Ponieważ liczba całkowita przechowuje tylko liczbę całkowitą, konwersja usunie miejsca dziesiętne. Na przykład konwersja „12,34” spowoduje zapisanie tylko wartości „12”.

podwójnie dWartość = 12.34;
int iWartość = (int)dWartość;
Konsola. WriteLine (iValue); // wyjście: 12

Możesz także rzucić liczbę całkowitą z powrotem na podwójną:

dWartość = (podwójnie)cenię;
Konsola. WriteLine (dValue); // wyjście: 12

Łańcuchy i wartości logiczne

Aby przekonwertować ciąg na wartość logiczną, użyj metody Parse() lub ToBoolean():

string stringBool = "PRAWDA";
bool b = bool. Przeanalizuj (stringBool);

// Lub

b = Konwertuj. ToBoolean (stringBool);
Konsola. Wiersz zapisu (b); // wyjście: prawda

Aby przekonwertować wartość logiczną z powrotem na ciąg znaków, użyj metody ToString():

łańcuch strPrawda = PRAWDA.ToString();
string strFałsz = FAŁSZ.ToString();

Liczby całkowite i wartości logiczne

Aby przekonwertować liczbę całkowitą na wartość logiczną, użyj metody ToBoolean() w celu przekonwertowania wartości „1” lub „0” na odpowiadającą jej wartość logiczną. Wartość „1” zostanie przekonwertowana na „prawda”, a wartość „0” na „fałsz”:

int fałszywyBit = 0;
int prawdaBit = 1;
Konsola. WriteLine (Konwertuj. ToBoolean (falseBit)); // wyjście: fałsz
Konsola. WriteLine (Konwertuj. ToBoolean (trueBit)); // wyjście: prawda

Do metody ToBoolean() można również przekazać wartość całkowitą inną niż „1” lub „0”. Domyślnie metoda nadal będzie zwracać „true”:

int nieprawidłowyBit = 8;
Konsola. WriteLine (Konwertuj. ToBoolean (nieprawidłowy bit)); // wyjście: prawda

Aby przekonwertować wartość logiczną z powrotem na liczbę całkowitą, użyj metody Convert. Metoda ToInt32(). Konwersja „prawda” zwróci „1”, a konwersja „fałsz” zwróci „0”.

bool iBool = PRAWDA;
int bInt = Konwertuj. ToInt32(iBool);
Konsola. Wiersz zapisu (bInt); // wyjście: 1

Ciągi do DateTime

Aby przeanalizować ciąg do formatu daty/godziny, użyj metody DateTime. Parse() metoda:

DateTime nowaDataCzas = DataCzas. Analizować("01/01/2018 00:00:00");
Konsola. WriteLine (newDateTime); // wyjście: 01.01.2018 00:00:00

Aby przekonwertować datę i godzinę z powrotem na łańcuch, użyj metody ToString():

DataCzas dt = nowy DataCzas(2018, 1, 1);
ciąg dtCiąg = dt. ToString();
Konsola. WriteLine (dtString); // wyjście: 01.01.2018 00:00:00

Analizowanie wartości do różnych typów danych

Teraz rozumiesz, jak konwertować wartości z jednego typu danych na inny. Nie są to jedyne dostępne konwersje, więc zachęcamy do zapoznania się z innymi typami danych w języku C#.

Możesz także sprawdzić, jak inne typy danych działają w innych językach, takich jak JavaScript.