Když deklarujete novou proměnnou v C#, obvykle ji inicializujete s konkrétním datovým typem. Může to být celé číslo, desetinné číslo, booleovská hodnota, řetězec nebo jiný datový typ.
Hodnotu můžete převést z jednoho datového typu na jiný. Pokud například převádíte řetězec na celé číslo, budete muset nejprve analyzovat hodnotu. Zde je několik různých způsobů, jak převádět a analyzovat hodnoty.
Proč potřebujete převádět nebo analyzovat data?
Příkladem, kdy možná budete potřebovat analyzovat data, je žádost o vstup uživatele v konzolové aplikaci C#:
Řídicí panel. WriteLine("Zadejte svůj věk:");
string plat = Konzole. ReadLine();
V tomto případě uživatel zadá celočíselnou hodnotu, ale aplikace ji ve výchozím nastavení uloží jako řetězec. Pokud byste se pokusili použít hodnotu řetězce v jakýchkoli výpočtech, dostanete chybu kompilace:
Dalším důvodem pro převod datových typů je přístup k určitým metodám, které jsou dostupné pouze pro konkrétní datový typ. Například struktura DateTime obsahuje funkci, která umožňuje přidat minuty. Pokud byste místo toho používali řetězec, neměli byste přístup k metodě:
Můžete také chtít převést hodnotu na jiný datový typ, pokud jste potřebovali dodržet strukturu datového typu a třída vytvořená v C# nebo a struktura v C#.
Jak převádět a analyzovat různé typy dat
Můžete analyzovat různé typy dat, jako jsou celá čísla, dvojité, booleovské typy a typy datetime.
Řetězce na celá čísla
Chcete-li převést řetězec na celé číslo, použijte metodu Parse():
řetězec strInt = "45";
int int32 = Int32.Parse (strInt);
Řídicí panel. WriteLine (int32); // výstup: 45
Řetězec můžete také analyzovat na celá čísla různých bitových velikostí, například Int16, Int32 nebo Int64.
int int16 = Int16.Parse (strInt);
Řídicí panel. WriteLine (int16); // výstup: 45
Pokud používáte metodu Parse(), ujistěte se, že hodnota řetězce představuje celé číslo. Pokud se pokusíte analyzovat neceločíselnou hodnotu, například „Ahoj“, zobrazí se za běhu chyba analýzy.
řetězec neplatnýString = "Ahoj";
int invalidResult = Int32.Parse (invalidString);
Můžete také použít metodu TryParse() k zachycení všech výjimek, které by mohly nastat při analýze:
int tryParseResult = 0;
-li (Int32.TryParse(invalidString, ventryParseResult))
{
Řídicí panel.WriteLine(tryParseResult);
}
jiný
{
Řídicí panel. WriteLine("Něco se pokazilo");
}
Chcete-li převést celé číslo zpět na řetězec, použijte metodu ToString():
string intString = 45.ToString();
Řídicí panel. WriteLine (intString); // výstup: 45
Struny do čtyřhry
Analýza řetězce na double je velmi podobná analýze jednoho na celé číslo. Použijte metodu Parse() ze třídy Double:
řetězec strDouble = "90.5";
dvojnásobek d = dvojnásobek. Parse (strDouble);
Řídicí panel. WriteLine (d); // výstup: 90,5
Stejně jako u celých čísel můžete také použít metodu TryParse() k zachycení všech chyb analýzy, které by mohly nastat:
string invalidStringDouble = "Ahoj";
dvojnásobek tryParseDouble = 0;
-li (Dvojnásobek.TryParse(invalidStringDouble, ventryParseDouble))
{
Řídicí panel.WriteLine(tryParseDouble);
}
Chcete-li převést double zpět na celé číslo, použijte metodu ToString():
dvojnásobek dDouble = 90.5;
řetězec dString = dDouble. ToString();
Řídicí panel. WriteLine (dString); // výstup: 90,5
Zdvojnásobí se na celá čísla
Přetypování můžete použít k převodu double na celé číslo. Protože celé číslo ukládá pouze celé číslo, převod odstraní desetinná místa. Například převodem „12,34“ se uloží pouze hodnota „12“.
dvojnásobek dValue = 12.34;
int iValue = (int)dValue;
Řídicí panel. WriteLine (iValue); // výstup: 12
Můžete také přehodit celé číslo zpět na double:
dValue = (dvojnásobek)iValue;
Řídicí panel. WriteLine (dValue); // výstup: 12
Řetězce a booleovské hodnoty
Chcete-li převést řetězec na logickou hodnotu, použijte metodu Parse() nebo ToBoolean():
řetězec stringBool = "Skutečný";
bool b = bool. Parse (stringBool);// nebo
b = Převést. ToBoolean (stringBool);
Řídicí panel. WriteLine (b); // výstup: true
Chcete-li převést boolean zpět na řetězec, použijte metodu ToString():
řetězec strTrue = skutečný.ToString();
řetězec strFalse = Nepravdivé.ToString();
Celá čísla a booleovské hodnoty
Chcete-li převést celé číslo na booleovskou hodnotu, použijte metodu ToBoolean() k převodu „1“ nebo „0“ na ekvivalentní booleovskou hodnotu. Hodnota "1" se převede na "true", zatímco "0" se převede na "false":
int falseBit = 0;
int trueBit = 1;
Řídicí panel. WriteLine (Převést. ToBoolean (falseBit)); // výstup: false
Řídicí panel. WriteLine (Převést. ToBoolean (trueBit)); // výstup: true
Do metody ToBoolean() můžete také předat jinou celočíselnou hodnotu než "1" nebo "0". Ve výchozím nastavení bude metoda stále vracet "true":
int invalidBit = 8;
Řídicí panel. WriteLine (Převést. ToBoolean (invalidBit)); // výstup: true
Chcete-li převést boolean zpět na celé číslo, použijte příkaz Převést. Metoda ToInt32(). Převod „true“ vrátí „1“ a převod „false“ vrátí „0“.
bool iBool = skutečný;
int bInt = Převést. ToInt32(iBool);
Řídicí panel. WriteLine (bInt); // výstup: 1
Řetězce na DateTime
Chcete-li analyzovat řetězec do formátu datetime, použijte DateTime. Metoda Parse():
DateTime newDateTime = DateTime. Analyzovat("01/01/2018 00:00:00");
Řídicí panel. WriteLine (newDateTime); // výstup: 01.01.2018 00:00:00
Chcete-li převést datum a čas zpět na řetězec, použijte metodu ToString():
Datum a čas dt = Nový Čas schůzky(2018, 1, 1);
řetězec dtString = dt. ToString();
Řídicí panel. WriteLine (dtString); // výstup: 01.01.2018 00:00:00
Analýza hodnot na různé typy dat
Nyní chápete, jak převádět hodnoty z jednoho datového typu na jiný. Toto nejsou jediné konverze, takže se neváhejte dozvědět více o dalších typech dat v C#.
Můžete také prozkoumat, jak fungují jiné datové typy v jiných jazycích, jako je JavaScript.