Ko deklarirate novo spremenljivko v C#, jo običajno inicializirate z določeno vrsto podatkov. To je lahko celo število, decimalno, logično, niz ali drug podatkovni tip.
Vrednost lahko pretvorite iz ene vrste podatkov v drugo. Na primer, če pretvarjate niz v celo število, boste morali najprej razčleniti vrednost. Tukaj je nekaj različnih načinov, kako lahko pretvorite in razčlenite vrednosti.
Zakaj morate pretvoriti ali razčleniti podatke?
Primer, ko boste morda morali razčleniti podatke, je, če zahtevate uporabniški vnos v konzolni aplikaciji C#:
Konzola. WriteLine("Vnesite svojo starost:");
string salary = Console. ReadLine();
V tem primeru bo uporabnik vnesel celoštevilsko vrednost, vendar jo bo aplikacija privzeto shranila kot niz. Če bi poskusili uporabiti vrednost niza v katerem koli izračunu, bi dobili napako pri prevajanju:
Drugi razlog za pretvorbo tipov podatkov je dostop do določenih metod, ki so na voljo samo za določen tip podatkov. Na primer, struktura DateTime vsebuje funkcijo, ki vam omogoča dodajanje minut. Če bi namesto tega uporabljali niz, ne bi imeli dostopa do metode:
Morda boste želeli tudi pretvoriti vrednost v drug podatkovni tip, če morate slediti strukturi podatkovnega tipa a razred ustvarjen v C# ali a struktura v C#.
Kako pretvoriti in razčleniti različne vrste podatkov
Razčlenite lahko različne podatkovne tipe, kot so cela števila, podvojitve, logični tipi in tipi datuma in časa.
Nizi v cela števila
Če želite pretvoriti niz v celo število, uporabite metodo Parse():
niz strInt = "45";
int int32 = Int32.Parse (strInt);
Konzola. WriteLine (int32); // izhod: 45
Niz lahko tudi razčlenite na cela števila različnih bitnih velikosti, kot so Int16, Int32 ali Int64.
int int16 = Int16.Parse (strInt);
Konzola. WriteLine (int16); // izhod: 45
Če uporabljate metodo Parse(), se prepričajte, da vrednost niza predstavlja celo število. Če poskušate razčleniti vrednost, ki ni celo število, kot je "Hello", boste med izvajanjem prejeli napako pri razčlenjevanju.
niz invalidString = "zdravo";
int invalidResult = Int32.Parse (invalidString);
Uporabite lahko tudi metodo TryParse(), da ujamete morebitne izjeme, do katerih lahko pride pri razčlenjevanju:
int poskusiParseResult = 0;
če (Int32.TryParse(invalidString, venposkusiParseResult))
{
Konzola.WriteLine(poskusiParseResult);
}
drugače
{
Konzola. WriteLine("Nekaj je šlo narobe");
}
Če želite pretvoriti celo število nazaj v niz, uporabite metodo ToString():
niz intString = 45.ToString();
Konzola. WriteLine (intString); // izhod: 45
Strune v dvojine
Razčlenjevanje niza na dvojnik je zelo podobno razčlenjevanju ena na celo število. Uporabite metodo Parse() iz razreda Double:
niz strDouble = "90.5";
dvojno d = dvojno. Razčleni (strDouble);
Konzola. Napiši vrstico (d); // izhod: 90,5
Kot pri celih številih lahko uporabite tudi metodo TryParse(), da ujamete morebitne napake pri razčlenjevanju, do katerih bi lahko prišlo:
niz invalidStringDouble = "zdravo";
dvojno poskusiParseDouble = 0;
če (Dvojno.TryParse(invalidStringDouble, venposkusiParseDouble))
{
Konzola.WriteLine(poskusiParseDouble);
}
Če želite dvojno pretvoriti nazaj v celo število, uporabite metodo ToString():
dvojno dDouble = 90.5;
niz dString = dDouble. ToString();
Konzola. WriteLine (dString); // izhod: 90,5
Podvoji v cela števila
Pretvorbo lahko uporabite za pretvorbo dvojnika v celo število. Ker celo število shrani samo celo število, bo pretvorba odstranila decimalna mesta. Na primer, pretvorba "12,34" bo shranila samo vrednost "12".
dvojno dVrednost = 12.34;
int iVrednost = (int)dVrednost;
Konzola. WriteLine (iValue); // izhod: 12
Celo število lahko tudi pretvorite nazaj v dvojno:
dVrednost = (dvojno)iVrednost;
Konzola. WriteLine (dValue); // izhod: 12
Nizi in logične vrednosti
Če želite pretvoriti niz v logično vrednost, uporabite metodo Parse() ali ToBoolean():
niz stringBool = "Prav";
bool b = bool. Razčleni (stringBool);// oz
b = Pretvori. ToBoolean (stringBool);
Konzola. Napiši vrstico (b); // izhod: res
Če želite logično vrednost pretvoriti nazaj v niz, uporabite metodo ToString():
niz strTrue = prav.ToString();
niz strFalse = lažno.ToString();
Cela števila in logične vrednosti
Če želite pretvoriti celo število v logično vrednost, uporabite metodo ToBoolean(), da pretvorite bodisi »1« ali »0« v njeno enakovredno logično vrednost. Vrednost "1" se pretvori v "true", medtem ko se "0" pretvori v "false":
int falseBit = 0;
int trueBit = 1;
Konzola. WriteLine (Pretvori. ToBoolean (falseBit)); // izhod: false
Konzola. WriteLine (Pretvori. ToBoolean (trueBit)); // izhod: res
Metodi ToBoolean() lahko posredujete tudi celoštevilsko vrednost, ki ni "1" ali "0". Privzeto bo metoda še vedno vrnila "true":
int invalidBit = 8;
Konzola. WriteLine (Pretvori. ToBoolean (invalidBit)); // izhod: res
Če želite logično vrednost pretvoriti nazaj v celo število, uporabite Pretvori. Metoda ToInt32(). Pretvorba »true« bo vrnila »1«, pretvorba »false« pa »0«.
bool iBool = prav;
int bInt = Pretvori. ToInt32(iBool);
Konzola. WriteLine (bInt); // izhod: 1
Nizi v DateTime
Če želite razčleniti niz v obliko datuma in časa, uporabite DateTime. Metoda Parse():
DateTime newDateTime = Datum in čas. Razčleni("01/01/2018 00:00:00");
Konzola. WriteLine (newDateTime); // izhod: 01.01.2018 00:00:00
Če želite pretvoriti datum in čas nazaj v niz, uporabite metodo ToString():
DatumČas dt = novo Datum čas(2018, 1, 1);
niz dtString = dt. ToString();
Konzola. WriteLine (dtString); // izhod: 01.01.2018 00:00:00
Razčlenjevanje vrednosti v različne vrste podatkov
Zdaj razumete, kako pretvoriti vrednosti iz ene vrste podatkov v drugo. To niso edine pretvorbe, zato lahko izveste več o drugih vrstah podatkov v C#.
Prav tako lahko raziščete, kako drugi tipi podatkov delujejo v drugih jezikih, kot je JavaScript.