Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Keď deklarujete novú premennú v C#, zvyčajne ju inicializujete s konkrétnym typom údajov. Môže to byť celé číslo, desatinné číslo, boolovská hodnota, reťazec alebo iný typ údajov.

Hodnotu môžete previesť z jedného typu údajov na iný. Ak napríklad konvertujete reťazec na celé číslo, musíte najprv analyzovať hodnotu. Tu je niekoľko rôznych spôsobov, ako môžete konvertovať a analyzovať hodnoty.

Prečo potrebujete konvertovať alebo analyzovať údaje?

Príklad, kedy možno budete musieť analyzovať údaje, je, ak požadujete vstup používateľa v aplikácii konzoly C#:

Konzola. WriteLine("Zadajte svoj vek:");
string plat = Konzola. ReadLine();

V tomto prípade používateľ zadá celočíselnou hodnotu, ale aplikácia ju štandardne uloží ako reťazec. Ak by ste sa pokúsili použiť hodnotu reťazca v akýchkoľvek výpočtoch, dostanete chybu kompilácie:

Ďalším dôvodom na konverziu dátových typov je prístup k určitým metódam, ktoré sú dostupné len pre konkrétny dátový typ. Napríklad štruktúra DateTime obsahuje funkciu, ktorá vám umožňuje pridať minúty. Ak by ste namiesto toho použili reťazec, nemali by ste prístup k metóde:

instagram viewer

Môžete tiež chcieť skonvertovať hodnotu na iný typ údajov, ak ste potrebovali dodržať štruktúru typu údajov a trieda vytvorená v C# alebo a štruktúra v C#.

Ako konvertovať a analyzovať rôzne typy údajov

Môžete analyzovať rôzne typy údajov, ako sú celé čísla, dvojité, booleovské typy a typy dátumu a času.

Reťazce na celé čísla

Ak chcete previesť reťazec na celé číslo, použite metódu Parse():

string strInt = "45";
int int32 = Int32.Parse (strInt);
Konzola. WriteLine (int32); // výstup: 45

Môžete tiež analyzovať reťazec na celé čísla rôznych veľkostí bitov, ako napríklad Int16, Int32 alebo Int64.

int int16 = Int16.Parse (strInt);
Konzola. WriteLine (int16); // výstup: 45

Ak používate metódu Parse(), uistite sa, že hodnota reťazca predstavuje celé číslo. Ak sa pokúsite analyzovať neceločíselné hodnoty, ako napríklad „Ahoj“, pri spustení sa zobrazí chyba analýzy.

string invalidString = "Ahoj";
int invalidResult = Int32.Parse (invalidString);

Môžete tiež použiť metódu TryParse() na zachytenie akýchkoľvek výnimiek, ktoré by sa mohli vyskytnúť pri analýze:

int tryParseResult = 0;

ak (Int32.TryParse(invalidString, vontryParseResult))
{
Konzola.WriteLine(tryParseResult);
}
inak
{
Konzola. WriteLine("Niečo sa pokazilo");
}

Ak chcete previesť celé číslo späť na reťazec, použite metódu ToString():

string intString = 45.ToString();
Konzola. WriteLine (intString); // výstup: 45

Struny do štvorhry

Analýza reťazca na dvojité je veľmi podobná analýze jedného na celé číslo. Použite metódu Parse() z triedy Double:

string strDouble = "90.5";
dvojitý d = dvojité. Parse (strDouble);
Konzola. WriteLine (d); // výstup: 90,5

Rovnako ako v prípade celých čísel môžete tiež použiť metódu TryParse() na zachytenie akýchkoľvek chýb analýzy, ktoré by sa mohli vyskytnúť:

string invalidStringDouble = "Ahoj";
dvojitý tryParseDouble = 0;

ak (Dvojité.TryParse(invalidStringDouble, vontryParseDouble))
{
Konzola.WriteLine(tryParseDouble);
}

Ak chcete previesť dvojité späť na celé číslo, použite metódu ToString():

dvojitý dDouble = 90.5;
reťazec dString = dDouble. Natiahnuť();
Konzola. WriteLine (dString); // výstup: 90,5

Dvojité na celé čísla

Pomocou castingu môžete previesť double na celé číslo. Pretože celé číslo ukladá iba celé číslo, prevod odstráni desatinné miesta. Napríklad prevodom „12,34“ sa uloží iba hodnota „12“.

dvojitý dValue = 12.34;
int iValue = (int)dValue;
Konzola. WriteLine (iValue); // výstup: 12

Môžete tiež vrhnúť celé číslo späť na dvojnásobok:

dValue = (dvojitý)iValue;
Konzola. WriteLine (dValue); // výstup: 12

Reťazce a booleovské hodnoty

Ak chcete skonvertovať reťazec na boolovský, použite metódu Parse() alebo ToBoolean():

string stringBool = "Pravda";
bool b = bool. Parse (stringBool);

// alebo

b = Konvertovať. ToBoolean (stringBool);
Konzola. WriteLine (b); // výstup: true

Ak chcete previesť boolovskú hodnotu späť na reťazec, použite metódu ToString():

string strTrue = pravda.Natiahnuť();
string strFalse = falošný.Natiahnuť();

Celé čísla a booleovské hodnoty

Ak chcete previesť celé číslo na booleovskú hodnotu, použite metódu ToBoolean() na konverziu „1“ alebo „0“ na ekvivalentnú boolovskú hodnotu. Hodnota "1" sa skonvertuje na "true", zatiaľ čo "0" sa skonvertuje na "false":

int falseBit = 0;
int trueBit = 1;
Konzola. WriteLine (Previesť. ToBoolean (falseBit)); // výstup: false
Konzola. WriteLine (Previesť. ToBoolean (trueBit)); // výstup: true

Do metódy ToBoolean() môžete tiež odovzdať inú celočíselnú hodnotu ako "1" alebo "0". V predvolenom nastavení bude metóda stále vracať „true“:

int invalidBit = 8;
Konzola. WriteLine (Previesť. ToBoolean (invalidBit)); // výstup: true

Ak chcete previesť boolovskú hodnotu späť na celé číslo, použite príkaz Konvertovať. Metóda ToInt32(). Konverzia „true“ vráti „1“ a konverzia „false“ vráti „0“.

bool iBool = pravda;
int bInt = Konvertovať. ToInt32(iBool);
Konzola. WriteLine (bInt); // výstup: 1

Reťazce na dátum a čas

Ak chcete analyzovať reťazec na formát dátumu a času, použite DateTime. Metóda Parse():

DateTime newDateTime = DateTime. Analyzovať("01/01/2018 00:00:00");
Konzola. WriteLine (newDateTime); // výstup: 01.01.2018 00:00:00

Ak chcete previesť dátum a čas späť na reťazec, použite metódu ToString():

Dátum a čas dt = Nový Dátum Čas(2018, 1, 1);
reťazec dtString = dt. Natiahnuť();
Konzola. WriteLine (dtString); // výstup: 01.01.2018 00:00:00

Analýza hodnôt na rôzne typy údajov

Teraz chápete, ako previesť hodnoty z jedného typu údajov na iný. Toto nie sú jediné konverzie, takže sa neváhajte dozvedieť viac o iných typoch údajov v C#.

Môžete tiež preskúmať, ako fungujú iné typy údajov v iných jazykoch, ako je napríklad JavaScript.