Kui deklareerite C#-s uue muutuja, lähtestatakse see tavaliselt teatud andmetüübiga. See võib olla täisarv, kümnendkoht, tõeväärtus, string või mõni muu andmetüüp.
Saate teisendada väärtuse ühest andmetüübist teise. Näiteks kui teisendate stringi täisarvuks, peate esmalt selle väärtuse sõeluma. Siin on mõned erinevad viisid väärtuste teisendamiseks ja sõelumiseks.
Miks on vaja andmeid teisendada või sõeluda?
Näide selle kohta, millal peate andmeid sõeluma, on see, kui taotlete kasutaja sisestust C#-konsoolirakenduses.
konsool. WriteLine("Sisesta oma vanus:");
string palk = Konsool. ReadLine();
Sel juhul sisestab kasutaja täisarvu väärtuse, kuid rakendus salvestab selle vaikimisi stringina. Kui proovisite arvutustes kasutada stringi väärtust, saate kompileerimisvea:
Teine põhjus andmetüüpide teisendamiseks on juurdepääs teatud meetoditele, mis on saadaval ainult teatud andmetüübi jaoks. Näiteks DateTime struktuur sisaldab funktsiooni, mis võimaldab lisada minuteid. Kui kasutaksite selle asemel stringi, poleks teil juurdepääsu meetodile:
Samuti võite soovida teisendada väärtuse teise andmetüübiks, kui teil oli vaja järgida a andmetüübi struktuuri klass loodud C# keeles või a struktuur C# keeles.
Kuidas teisendada ja sõeluda erinevaid andmetüüpe
Saate sõeluda erinevaid andmetüüpe, nagu täisarvud, topeltarvud, tõeväärtuse tüübid ja kuupäeva-aja tüübid.
Stringid täisarvudeni
Stringi täisarvuks teisendamiseks kasutage meetodit Parse().
string strInt = "45";
int int32 = Int32.Parse (strInt);
konsool. WriteLine (int32); // väljund: 45
Samuti saate stringi sõeluda erineva bitisuurusega täisarvudeks, näiteks Int16, Int32 või Int64.
int int16 = Int16.Parse (strInt);
konsool. WriteLine (int16); // väljund: 45
Kui kasutate meetodit Parse(), veenduge, et stringi väärtus oleks täisarv. Kui proovite sõeluda mittetäisarvulist väärtust, näiteks "Tere", kuvatakse käitusajal sõelumisvea.
string invalidString = "Tere";
int invalidResult = Int32.Parse (invalidString);
Samuti võite kasutada meetodit TryParse(), et püüda kinni parsimisel tekkida võivatest eranditest:
int tryParseResult = 0;
kui (Int32.TryParse(kehtetuString, väljatryParseResult))
{
konsool.WriteLine(tryParseResult);
}
muidu
{
konsool. WriteLine("Midagi läks valesti");
}
Täisarvu tagasi stringiks teisendamiseks kasutage meetodit ToString().
string intString = 45.ToString();
konsool. WriteLine (intString); // väljund: 45
Strings to doubles
Stringi sõelumine kahekordseks on väga sarnane ühe täisarvuks sõelumisega. Kasutage Double klassi meetodit Parse().
string strDouble = "90.5";
kahekordne d = kahekordne. Parse (strDouble);
konsool. WriteLine (d); // väljund: 90,5
Nagu täisarvude puhul, saate ka meetodit TryParse() kasutada võimalike parsimisvigade tuvastamiseks:
string invalidStringDouble = "Tere";
kahekordne tryParseDouble = 0;
kui (Kahekordne.TryParse(invalidStringDouble, väljaproovigeParseDouble))
{
konsool.WriteLine(proovigeParseDouble);
}
Topeltarvu teisendamiseks täisarvuks kasutage meetodit ToString().
kahekordne d Topelt = 90.5;
string dString = dDouble. ToString();
konsool. WriteLine (dString); // väljund: 90,5
Kahekordne täisarvudeks
Saate kasutada ülekandmist, et teisendada topelt täisarvuks. Kuna täisarv salvestab ainult täisarvu, eemaldab teisendus kümnendkohad. Näiteks "12,34" teisendamine salvestab ainult väärtuse "12".
kahekordne dVäärtus = 12.34;
int iValue = (int)dValue;
konsool. WriteLine (iValue); // väljund: 12
Samuti saate täisarvu duubliks tagasi heita:
dValue = (kahekordne)iValue;
konsool. WriteLine (dValue); // väljund: 12
Stringid ja Boole'i väärtused
Stringi tõeväärtuseks teisendamiseks kasutage meetodit Parse() või ToBoolean().
string stringBool = "Tõsi";
bool b = bool. Parse (stringBool);// või
b = Teisenda. ToBool (stringBool);
konsool. WriteLine (b); // väljund: tõsi
Tõeväärtuse teisendamiseks tagasi stringiks kasutage meetodit ToString().
string strTrue = tõsi.ToString();
string strFalse = vale.ToString();
Täisarvud ja Boole'i väärtused
Täisarvu teisendamiseks tõeväärtuseks kasutage meetodit ToBoolean(), et teisendada kas "1" või "0" samaväärseks tõeväärtuseks. Väärtus "1" teisendatakse väärtuseks "tõene", samas kui "0" teisendatakse väärtuseks "false":
int falseBit = 0;
int trueBit = 1;
konsool. WriteLine (teisenda. ToBool (falseBit)); // väljund: false
konsool. WriteLine (teisenda. ToBool (trueBit)); // väljund: tõsi
Meetodile ToBoolan() saate edastada ka muu täisarvu väärtuse kui "1" või "0". Vaikimisi tagastab meetod endiselt väärtuse "tõene":
int kehtetuBit = 8;
konsool. WriteLine (teisenda. ToBool (invalidBit)); // väljund: tõsi
Tõeväärtuse teisendamiseks täisarvuks kasutage käsku Teisenda. ToInt32() meetod. "Tõene" teisendamine tagastab väärtuse "1" ja "false" teisendamine tagastab väärtuse "0".
bool iBool = tõsi;
int bInt = Teisenda. ToInt32(iBool);
konsool. WriteLine (bInt); // väljund: 1
Stringid DateTime
Stringi sõelumiseks kuupäeva ja kellaaja vormingusse kasutage valikut DateTime. Parse() meetod:
DateTime newDateTime = DateTime. Parse("01/01/2018 00:00:00");
konsool. WriteLine (newDateTime); // väljund: 01/01/2018 00:00:00
Kuupäeva-kellaaja tagasi stringiks teisendamiseks kasutage meetodit ToString().
Kuupäev Kell dt = uus Kuupäev Kellaaeg(2018, 1, 1);
string dtString = dt. ToString();
konsool. WriteLine (dtString); // väljund: 01/01/2018 00:00:00
Väärtuste sõelumine erinevatele andmetüüpidele
Nüüd saate aru, kuidas teisendada väärtusi ühest andmetüübist teise. Need ei ole ainsad konversioonid, seega saate lisateavet teiste C# andmetüüpide kohta.
Samuti saate uurida, kuidas muud andmetüübid teistes keeltes (nt JavaScriptis) töötavad.