Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Kada deklarirate novu varijablu u C#, obično ćete je inicijalizirati s određenim tipom podataka. To može biti cijeli broj, decimalni, booleov, niz ili neka druga vrsta podataka.

Možete pretvoriti vrijednost iz jedne vrste podataka u drugu. Na primjer, ako pretvarate niz u cijeli broj, prvo ćete morati raščlaniti vrijednost. Evo nekoliko različitih načina na koje možete pretvoriti i analizirati vrijednosti.

Zašto trebate pretvoriti ili analizirati podatke?

Primjer kada ćete možda trebati raščlaniti podatke je ako tražite korisnički unos u C# konzolnoj aplikaciji:

Konzola. WriteLine("Unesite svoje godine:");
string salary = Konzola. ReadLine();

U ovom slučaju, korisnik će unijeti cjelobrojnu vrijednost, ali će je aplikacija prema zadanim postavkama pohraniti kao niz. Ako ste pokušali upotrijebiti vrijednost niza u bilo kojem izračunu, dobili biste pogrešku kompilacije:

instagram viewer

Drugi razlog za pretvaranje tipova podataka je pristup određenim metodama koje su dostupne samo za određeni tip podataka. Na primjer, struktura DateTime sadrži funkciju koja vam omogućuje dodavanje minuta. Da umjesto toga koristite niz, ne biste imali pristup metodi:

Možda ćete također htjeti pretvoriti vrijednost u drugu vrstu podataka ako trebate slijediti strukturu tipa podataka a klasa stvorena u C# ili a struktura u C#.

Kako pretvoriti i analizirati različite vrste podataka

Možete analizirati različite tipove podataka kao što su integers, double, boolean tipovi i tipovi datuma i vremena.

Nizovi u cijele brojeve

Za pretvaranje niza u cijeli broj upotrijebite metodu Parse():

niz strInt = "45";
int int32 = Int32.Parse (strInt);
Konzola. WriteLine (int32); // izlaz: 45

Također možete raščlaniti niz na cijele brojeve različitih veličina bita, kao što su Int16, Int32 ili Int64.

int int16 = Int16.Parse (strInt);
Konzola. WriteLine (int16); // izlaz: 45

Ako koristite metodu Parse(), provjerite predstavlja li vrijednost niza cijeli broj. Ako pokušate raščlaniti vrijednost koja nije cijeli broj kao što je "Hello", primit ćete pogrešku raščlanjivanja tijekom izvođenja.

nevažeći niz = "zdravo";
int invalidResult = Int32.Parse (invalidString);

Također možete koristiti metodu TryParse() da biste uhvatili sve iznimke koje bi se mogle pojaviti prilikom raščlanjivanja:

int tryParseResult = 0;

ako (Int32.Pokušaj raščlaniti(invalidString, vanpokušajParseResult))
{
Konzola.WriteLine(pokušajParseResult);
}
drugo
{
Konzola. WriteLine("Nešto je pošlo po zlu");
}

Za pretvaranje cijelog broja natrag u niz, upotrijebite metodu ToString():

string intString = 45.ToString();
Konzola. WriteLine (intString); // izlaz: 45

Žice za dupliranje

Raščlanjivanje niza na double vrlo je slično raščlanjivanju jedan na cijeli broj. Koristite metodu Parse() iz klase Double:

string strDouble = "90.5";
dvostruko d = dvostruko. Raščlanjivanje (strDouble);
Konzola. NapišiLinija (d); // izlaz: 90.5

Kao i s cijelim brojevima, također možete koristiti metodu TryParse() da biste uhvatili sve pogreške parsiranja koje bi se mogle pojaviti:

niz invalidStringDouble = "zdravo";
dvostruko pokušajParseDouble = 0;

ako (Dvostruko.Pokušaj raščlaniti(invalidStringDouble, vanpokušajParseDouble))
{
Konzola.WriteLine(pokušajParseDouble);
}

Da biste dvostruko pretvorili natrag u cijeli broj, koristite metodu ToString():

dvostruko dDvostruko = 90.5;
string dString = dDouble. ToString();
Konzola. WriteLine (dString); // izlaz: 90.5

Dupleri u cijele brojeve

Možete koristiti kasting za pretvaranje dvostrukog u cijeli broj. Budući da cijeli broj pohranjuje samo cijeli broj, konverzija će ukloniti decimalna mjesta. Na primjer, pretvaranje "12.34" pohranit će samo vrijednost "12".

dvostruko dVrijednost = 12.34;
int iVrijednost = (int)dVrijednost;
Konzola. WriteLine (iValue); // izlaz: 12

Također možete pretvoriti cijeli broj natrag u double:

dVrijednost = (dvostruko)iVrijednost;
Konzola. WriteLine (dValue); // izlaz: 12

Nizovi i Booleove vrijednosti

Za pretvaranje niza u Boolean upotrijebite metodu Parse() ili ToBoolean():

string stringBool = "Pravi";
bool b = bool. Raščlanjivanje (stringBool);

// ili

b = Pretvori. ToBoolean (stringBool);
Konzola. NapišiLinija (b); // izlaz: istina

Za pretvaranje booleove vrijednosti natrag u niz, upotrijebite metodu ToString():

string strTrue = pravi.ToString();
string strFalse = lažno.ToString();

Cijeli brojevi i Booleove vrijednosti

Za pretvaranje cijelog broja u Boolean, upotrijebite metodu ToBoolean() za pretvaranje "1" ili "0" u njegovu ekvivalentnu Booleovu vrijednost. Vrijednost "1" pretvorit će se u "true" dok se "0" pretvara u "false":

int falseBit = 0;
int trueBit = 1;
Konzola. WriteLine (Pretvori. ToBoolean (falseBit)); // izlaz: false
Konzola. WriteLine (Pretvori. ToBoolean (trueBit)); // izlaz: istina

Metodi ToBoolean() možete proslijediti i cjelobrojnu vrijednost koja nije "1" ili "0". Prema zadanim postavkama, metoda će i dalje vraćati "true":

int invalidBit = 8;
Konzola. WriteLine (Pretvori. ToBoolean (invalidBit)); // izlaz: istina

Da biste Booleovu vrijednost pretvorili natrag u cijeli broj, koristite Pretvori. Metoda ToInt32(). Pretvaranje "true" će vratiti "1", a pretvaranje "false" će vratiti "0".

bool iBool = pravi;
int bInt = Pretvori. ToInt32(iBool);
Konzola. WriteLine (bInt); // izlaz: 1

Nizovi za datum i vrijeme

Da biste raščlanili niz u format datuma i vremena, koristite DateTime. Metoda Parse():

DateTime newDateTime = DatumVrijeme. Raščlanjivanje ("01/01/2018 00:00:00");
Konzola. WriteLine (newDateTime); // izlaz: 01.01.2018 00:00:00

Za pretvaranje datuma i vremena natrag u niz, upotrijebite metodu ToString():

Datum i vrijeme dt = novi Datum vrijeme(2018, 1, 1);
string dtString = dt. ToString();
Konzola. WriteLine (dtString); // izlaz: 01.01.2018 00:00:00

Raščlanjivanje vrijednosti na različite vrste podataka

Sada razumijete kako pretvoriti vrijednosti iz jedne vrste podataka u drugu. Ovo nisu jedine pretvorbe koje postoje, pa slobodno saznajte više o drugim vrstama podataka u C#.

Također možete istražiti kako druge vrste podataka rade u drugim jezicima, kao što je JavaScript.