Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

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ě:

instagram viewer

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.