Når du erklærer en ny variabel i C#, vil du vanligvis initialisere den med en bestemt datatype. Dette kan være et heltall, desimal, boolsk, streng eller en annen datatype.
Du kan konvertere en verdi fra én datatype til en annen. For eksempel, hvis du konverterer en streng til et heltall, må du analysere verdien først. Her er noen forskjellige måter du kan konvertere og analysere verdier på.
Hvorfor trenger du å konvertere eller analysere data?
Et eksempel på når du kan trenge å analysere data er hvis du ber om brukerinndata i en C#-konsollapplikasjon:
Konsoll. WriteLine("Skriv inn alderen din:");
streng lønn = Konsoll. ReadLine();
I dette tilfellet vil brukeren angi en heltallsverdi, men applikasjonen vil lagre den som en streng som standard. Hvis du prøvde å bruke strengverdien i noen beregninger, vil du få en kompileringsfeil:
En annen grunn til å konvertere datatyper er å få tilgang til visse metoder som bare er tilgjengelige for en bestemt datatype. For eksempel inneholder DateTime-strukturen en funksjon som lar deg legge til minutter. Hvis du brukte en streng i stedet, ville du ikke ha tilgang til metoden:
Det kan også være lurt å konvertere en verdi til en annen datatype hvis du trengte å følge datatypestrukturen til en klasse opprettet i C# eller a struktur i C#.
Hvordan konvertere og analysere forskjellige datatyper
Du kan analysere forskjellige datatyper som heltall, dobler, boolske typer og dato- og klokkesletttyper.
Strenger til heltall
For å konvertere en streng til et heltall, bruk Parse()-metoden:
string strInt = "45";
int int32 = Int32.Parse (strInt);
Konsoll. WriteLine (int32); // utgang: 45
Du kan også analysere strengen i heltall med forskjellige bitstørrelser, for eksempel Int16, Int32 eller Int64.
int int16 = Int16.Parse (strInt);
Konsoll. WriteLine (int16); // utgang: 45
Hvis du bruker Parse()-metoden, sørg for at strengverdien representerer et heltall. Hvis du prøver å analysere en ikke-heltallsverdi, for eksempel "Hei", vil du motta en parsefeil ved kjøring.
string invalidString = "Hallo";
int invalidResult = Int32.Parse (invalidString);
Du kan også bruke TryParse()-metoden for å fange opp eventuelle unntak som kan oppstå ved parsing:
int tryParseResult = 0;
hvis (Int32.TryParse(invalidString, uteprøvParseResult))
{
Konsoll.WriteLine(prøvParseResult);
}
ellers
{
Konsoll. WriteLine("Noe gikk galt");
}
For å konvertere et heltall tilbake til en streng, bruk ToString()-metoden:
streng intString = 45.ToString();
Konsoll. WriteLine (intString); // utgang: 45
Strenger til dobler
Å analysere en streng til en dobbel er veldig lik å analysere en til et heltall. Bruk Parse()-metoden fra Double-klassen:
streng strDouble = "90.5";
dobbelt d = Dobbel. Parse (strDouble);
Konsoll. WriteLine (d); // utgang: 90,5
Som med heltall, kan du også bruke TryParse()-metoden for å fange opp eventuelle parsefeil som kan oppstå:
string invalidStringDouble = "Hallo";
dobbelt tryParseDouble = 0;
hvis (Dobbelt.TryParse(invalidStringDouble, uteprøvParseDouble))
{
Konsoll.WriteLine(prøvParseDouble);
}
For å konvertere en dobbel tilbake til et heltall, bruk ToString()-metoden:
dobbelt dDobbel = 90.5;
streng dString = dDouble. ToString();
Konsoll. WriteLine (dString); // utgang: 90,5
Dobler til heltall
Du kan bruke casting til å konvertere en dobbel til et heltall. Fordi et heltall bare lagrer et helt tall, vil konverteringen fjerne desimalene. For eksempel vil konvertering av "12.34" bare lagre verdien "12".
dobbelt dVerdi = 12.34;
int iValue = (int)dVerdi;
Konsoll. WriteLine (iValue); // utgang: 12
Du kan også kaste et heltall tilbake til en dobbel:
dVerdi = (dobbelt)jeg verdsetter;
Konsoll. WriteLine (dValue); // utgang: 12
Strenger og boolske verdier
For å konvertere en streng til en boolsk, bruk enten Parse()- eller ToBoolean()-metoden:
string stringBool = "ekte";
bool b = bool. Parse (stringBool);// eller
b = Konverter. ToBoolean (stringBool);
Konsoll. SkrivLine (b); // utgang: sant
For å konvertere en boolsk tilbake til en streng, bruk ToString()-metoden:
streng strTrue = ekte.ToString();
streng strFalse = falsk.ToString();
Heltall og boolske verdier
For å konvertere et heltall til en boolsk, bruk ToBoolean()-metoden for å konvertere enten en "1" eller "0" til dens ekvivalente boolske verdi. Verdien "1" konverteres til "true" mens "0" konverteres til "false":
int falseBit = 0;
int trueBit = 1;
Konsoll. WriteLine (Konverter. ToBoolean (falseBit)); // utgang: usann
Konsoll. WriteLine (Konverter. ToBoolean (trueBit)); // utgang: sant
Du kan også sende en annen heltallsverdi enn "1" eller "0" til ToBoolean()-metoden. Som standard vil metoden fortsatt returnere "true":
int invalidBit = 8;
Konsoll. WriteLine (Konverter. ToBoolean (ugyldigBit)); // utgang: sant
For å konvertere en boolsk tilbake til et heltall, bruk Konverter. ToInt32()-metoden. Konvertering av "true" vil returnere en "1", og konvertering av "false" vil returnere en "0".
bool iBool = ekte;
int bInt = Konverter. ToInt32(iBool);
Konsoll. WriteLine (bInt); // utgang: 1
Strenger til DateTime
For å analysere en streng til datetime-format, bruk DateTime. Parse() metode:
DateTime newDateTime = DatoTime. Parse("01/01/2018 00:00:00");
Konsoll. WriteLine (newDateTime); // utgang: 01/01/2018 00:00:00
For å konvertere en datetime tilbake til en streng, bruk ToString()-metoden:
DatoTid dt = ny Dato tid(2018, 1, 1);
streng dtString = dt. ToString();
Konsoll. WriteLine (dtString); // utgang: 01/01/2018 00:00:00
Parsing av verdier til forskjellige datatyper
Nå forstår du hvordan du konverterer verdier fra en datatype til en annen. Dette er ikke de eneste konverteringene der ute, så lær gjerne mer om andre datatyper i C#.
Du kan også utforske hvordan andre datatyper fungerer på andre språk, for eksempel JavaScript.