Kai deklaruojate naują kintamąjį C #, paprastai jį inicijuojate naudodami tam tikrą duomenų tipą. Tai gali būti sveikasis skaičius, dešimtainis skaičius, loginis skaičius, eilutė arba kitas duomenų tipas.
Galite konvertuoti reikšmę iš vieno duomenų tipo į kitą. Pavyzdžiui, jei konvertuojate eilutę į sveikąjį skaičių, pirmiausia turėsite išanalizuoti reikšmę. Štai keli skirtingi būdai, kaip konvertuoti ir analizuoti reikšmes.
Kodėl jums reikia konvertuoti arba analizuoti duomenis?
Pavyzdys, kada gali tekti išanalizuoti duomenis, yra, jei prašote vartotojo įvesties C# konsolės programoje:
Konsolė. WriteLine("Įveskite savo amžių:");
styginių atlyginimas = Console. ReadLine();
Tokiu atveju vartotojas įves sveikojo skaičiaus reikšmę, tačiau programa pagal numatytuosius nustatymus išsaugos ją kaip eilutę. Jei bandėte naudoti eilutės reikšmę bet kuriuose skaičiavimuose, gausite kompiliavimo klaidą:
Kita priežastis konvertuoti duomenų tipus yra pasiekti tam tikrus metodus, kurie galimi tik konkrečiam duomenų tipui. Pavyzdžiui, struktūroje DateTime yra funkcija, leidžianti pridėti minučių. Jei vietoj to naudotumėte eilutę, neturėtumėte prieigos prie metodo:
Taip pat galbūt norėsite konvertuoti reikšmę į kitą duomenų tipą, jei reikėjo vadovautis a duomenų tipo struktūra klasė sukurta C# arba a struktūra C#.
Kaip konvertuoti ir analizuoti skirtingus duomenų tipus
Galite išanalizuoti skirtingus duomenų tipus, pvz., sveikuosius skaičius, dvigubus skaičius, loginius tipus ir datos laiko tipus.
Stygos iki sveikųjų skaičių
Norėdami konvertuoti eilutę į sveikąjį skaičių, naudokite Parse() metodą:
eilutė strInt = "45";
tarpt int32 = Int32.Parse (strInt);
Konsolė. WriteLine (int32); // išvestis: 45
Taip pat galite išanalizuoti eilutę į skirtingo bitų dydžio sveikuosius skaičius, pvz., Int16, Int32 arba Int64.
tarpt int16 = Int16.Parse (strInt);
Konsolė. WriteLine (int16); // išvestis: 45
Jei naudojate metodą Parse(), įsitikinkite, kad eilutės reikšmė yra sveikasis skaičius. Jei bandysite išanalizuoti ne sveikąjį skaičių, pvz., „Labas“, vykdymo metu gausite analizavimo klaidą.
string invalidString = "Sveiki";
tarpt invalidResult = Int32.Parse (invalidString);
Taip pat galite naudoti TryParse() metodą, kad gautumėte visas išimtis, kurios gali atsirasti analizuojant:
tarpt tryParseResult = 0;
jeigu (Int32.TryParse(invalidString, išeititryParseResult))
{
Konsolė.WriteLine(tryParseResult);
}
Kitas
{
Konsolė. WriteLine("Kažkas nutiko");
}
Norėdami konvertuoti sveikąjį skaičių atgal į eilutę, naudokite ToString() metodą:
string intString = 45.ToString();
Konsolė. WriteLine (intString); // išvestis: 45
Stygos iki dvejetų
Eilutės analizavimas į dvigubą skaičių yra labai panašus į vienos analizės į sveikąjį skaičių. Naudokite „Double“ klasės metodą „Parse()“:
string strDouble = "90.5";
dvigubai d = dvigubas. Parse (strDouble);
Konsolė. WriteLine (d); // išvestis: 90.5
Kaip ir sveikieji skaičiai, taip pat galite naudoti TryParse() metodą, kad gautumėte bet kokias analizavimo klaidas, kurios gali atsirasti:
eilutė invalidStringDouble = "Sveiki";
dvigubai tryParseDouble = 0;
jeigu (Dvigubas.TryParse(invalidStringDouble, išeititryParseDouble))
{
Konsolė.WriteLine(tryParseDouble);
}
Norėdami konvertuoti dvigubą skaičių atgal į sveikąjį skaičių, naudokite ToString() metodą:
dvigubai d Dvigubas = 90.5;
eilutė dString = dDvigubas. ToString();
Konsolė. WriteLine (dString); // išvestis: 90.5
Dvigubai iki sveikųjų skaičių
Norėdami konvertuoti dublį į sveikąjį skaičių, galite naudoti liejimą. Kadangi sveikas skaičius išsaugo tik sveikąjį skaičių, konversija pašalins dešimtainius skaitmenis. Pavyzdžiui, konvertuojant „12,34“, bus išsaugota tik reikšmė „12“.
dvigubai dVertė = 12.34;
tarpt iValue = (tarpt)dValue;
Konsolė. WriteLine (iValue); // išvestis: 12
Taip pat sveikąjį skaičių galite grąžinti į dublį:
dValue = (dvigubai)iValue;
Konsolė. WriteLine (dValue); // išvestis: 12
Stygos ir Būlio reikšmės
Norėdami konvertuoti eilutę į loginę, naudokite metodą Parse() arba ToBoolean():
eilutė stringBool = "Tiesa";
bool b = bool. Parse (stringBool);// arba
b = konvertuoti. ToBool (stringBool);
Konsolė. WriteLine (b); // išvestis: tiesa
Norėdami konvertuoti loginę reikšmę atgal į eilutę, naudokite ToString() metodą:
strTrue = tiesa.ToString();
eilutė strFalse = klaidinga.ToString();
Sveikieji skaičiai ir Būlio reikšmės
Norėdami konvertuoti sveikąjį skaičių į loginį, naudokite ToBoolean() metodą, kad konvertuotumėte "1" arba "0" į ekvivalentinę loginę reikšmę. Reikšmė "1" bus konvertuojama į "true", o "0" konvertuojama į "klaidingą":
tarpt falseBit = 0;
tarpt trueBit = 1;
Konsolė. WriteLine (konvertuoti. ToBoolean (falseBit)); // išvestis: false
Konsolė. WriteLine (konvertuoti. ToBoolean (trueBit)); // išvestis: tiesa
Be to, ToBoolean() metodui galite perduoti kitokią sveikojo skaičiaus reikšmę nei „1“ arba „0“. Pagal numatytuosius nustatymus metodas vis tiek grąžins „true“:
tarpt invalidBit = 8;
Konsolė. WriteLine (konvertuoti. ToBoolean (invalidBit)); // išvestis: tiesa
Norėdami konvertuoti loginį skaičių atgal į sveikąjį skaičių, naudokite Konvertuoti. ToInt32() metodas. Konvertuojant „true“, bus „1“, o konvertuojant „klaidinga“ – „0“.
bool iBool = tiesa;
tarpt bInt = konvertuoti. ToInt32(iBool);
Konsolė. WriteLine (bInt); // išvestis: 1
Datos ir laiko eilutės
Norėdami išanalizuoti eilutę į datos ir laiko formatą, naudokite DateTime. Parse() metodas:
DateTime newDateTime = DataTime. Parse("01/01/2018 00:00:00");
Konsolė. WriteLine (newDateTime); // išvestis: 2018-01-01 00:00:00
Norėdami konvertuoti datos laiką atgal į eilutę, naudokite ToString() metodą:
DataLaikas dt = naujas DataLaikas (2018, 1, 1);
eilutė dtString = dt. ToString();
Konsolė. WriteLine (dtString); // išvestis: 2018-01-01 00:00:00
Vertybių analizavimas skirtingiems duomenų tipams
Dabar jūs suprantate, kaip konvertuoti reikšmes iš vieno duomenų tipo į kitą. Tai nėra vienintelės konversijos, todėl nedvejodami sužinokite daugiau apie kitus duomenų tipus C#.
Taip pat galite ištirti, kaip veikia kiti duomenų tipai kitomis kalbomis, pvz., „JavaScript“.