Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Når du erklærer en ny variabel i C#, vil du normalt initialisere den med en bestemt datatype. Dette kan være et heltal, et decimaltal, et boolesk tal, en streng eller en anden datatype.

Du kan konvertere en værdi fra én datatype til en anden. For eksempel, hvis du konverterer en streng til et heltal, skal du først parse værdien. Her er et par forskellige måder, du kan konvertere og analysere værdier på.

Hvorfor skal du konvertere eller analysere data?

Et eksempel på, hvornår du muligvis skal parse data, er, hvis du anmoder om brugerinput i en C#-konsolapplikation:

Konsol. WriteLine("Indtast din alder:");
streng løn = Konsol. ReadLine();

I dette tilfælde vil brugeren indtaste en heltalsværdi, men applikationen gemmer den som en streng som standard. Hvis du forsøgte at bruge strengværdien i nogen beregninger, ville du få en kompileringsfejl:

En anden grund til at konvertere datatyper er at få adgang til visse metoder, der kun er tilgængelige for en bestemt datatype. For eksempel indeholder DateTime-strukturen en funktion, der giver dig mulighed for at tilføje minutter. Hvis du i stedet brugte en streng, ville du ikke have adgang til metoden:

instagram viewer

Du vil måske også konvertere en værdi til en anden datatype, hvis du har brug for at følge datatypestrukturen for en klasse oprettet i C# eller a struktur i C#.

Sådan konverteres og analyseres forskellige datatyper

Du kan parse forskellige datatyper såsom heltal, doubler, boolean-typer og datetime-typer.

Strenge til heltal

For at konvertere en streng til et heltal skal du bruge metoden Parse():

streng strInt = "45";
int int32 = Int32.Parse (strInt);
Konsol. WriteLine (int32); // output: 45

Du kan også parse strengen i heltal af forskellige bitstørrelser, såsom Int16, Int32 eller Int64.

int int16 = Int16.Parse (strInt);
Konsol. WriteLine (int16); // output: 45

Hvis du bruger metoden Parse() skal du sørge for, at strengværdien repræsenterer et heltal. Hvis du forsøger at parse en ikke-heltalsværdi, såsom "Hej", vil du modtage en parsingsfejl ved kørsel.

streng invalidString = "Hej";
int invalidResult = Int32.Parse (invalidString);

Du kan også bruge metoden TryParse() til at fange eventuelle undtagelser, der kunne opstå ved parsing:

int tryParseResult = 0;

hvis (Int32.TryParse(invalidString, udprøvParseResult))
{
Konsol.WriteLine(prøvParseResult);
}
andet
{
Konsol. WriteLine("Noget gik galt");
}

For at konvertere et heltal tilbage til en streng, skal du bruge ToString()-metoden:

streng intString = 45.ToString();
Konsol. WriteLine (intString); // output: 45

Strenge til Double

Parsing af en streng til en double ligner meget at parse en streng til et heltal. Brug metoden Parse() fra Double-klassen:

streng strDouble = "90.5";
dobbelt d = Dobbelt. Parse (strDouble);
Konsol. WriteLine (d); // output: 90,5

Som med heltal kan du også bruge metoden TryParse() til at fange eventuelle parsingsfejl, der kunne opstå:

streng invalidStringDouble = "Hej";
dobbelt tryParseDouble = 0;

hvis (Dobbelt.TryParse(invalidStringDouble, udprøvParseDouble))
{
Konsol.WriteLine(prøvParseDouble);
}

For at konvertere en dobbelt tilbage til et heltal, brug ToString() metoden:

dobbelt dDobbelt = 90.5;
streng dString = dDouble. ToString();
Konsol. WriteLine (dString); // output: 90,5

Fordobles til heltal

Du kan bruge casting til at konvertere en dobbelt til et heltal. Fordi et heltal kun gemmer et helt tal, vil konverteringen fjerne decimalerne. For eksempel vil konvertering af "12.34" kun gemme værdien "12".

dobbelt dVærdi = 12.34;
int iValue = (int)dVærdi;
Konsol. WriteLine (iValue); // output: 12

Du kan også kaste et heltal tilbage til en dobbelt:

dVærdi = (dobbelt)iValue;
Konsol. WriteLine (dValue); // output: 12

Strings og booleske værdier

For at konvertere en streng til en boolean skal du bruge enten Parse() eller ToBoolean() metoden:

string stringBool = "Rigtigt";
bool b = bool. Parse (stringBool);

// eller

b = Konverter. ToBoolean (stringBool);
Konsol. SkrivLine (b); // output: sand

For at konvertere en boolesk tilbage til en streng, brug ToString()-metoden:

streng strTrue = rigtigt.ToString();
streng strFalse = falsk.ToString();

Heltal og booleske værdier

For at konvertere et heltal til et boolesk tal skal du bruge ToBoolean()-metoden til at konvertere enten et "1" eller "0" til dets tilsvarende booleske værdi. Værdien "1" konverteres til "sand", mens "0" konverteres til "falsk":

int falseBit = 0;
int trueBit = 1;
Konsol. WriteLine (Konverter. ToBoolean (falseBit)); // output: falsk
Konsol. WriteLine (Konverter. ToBoolean (trueBit)); // output: sand

Du kan også sende en anden heltalsværdi end "1" eller "0" til ToBoolean()-metoden. Som standard vil metoden stadig returnere "true":

int invalidBit = 8;
Konsol. WriteLine (Konverter. ToBoolean (invalidBit)); // output: sand

For at konvertere en boolesk tilbage til et heltal, skal du bruge Konverter. ToInt32() metode. Konvertering af "sand" vil returnere et "1", og konvertering af "false" vil returnere et "0".

bool iBool = rigtigt;
int bInt = Konverter. ToInt32(iBool);
Konsol. WriteLine (bInt); // output: 1

Strenge til DateTime

For at parse en streng til datetime-format skal du bruge DateTime. Parse() metode:

DateTime newDateTime = DatoTime. Parse("01/01/2018 00:00:00");
Konsol. WriteLine (newDateTime); // output: 01/01/2018 00:00:00

For at konvertere en datetime tilbage til en streng, skal du bruge ToString() metoden:

DatoTid dt = ny Dato tid(2018, 1, 1);
streng dtString = dt. ToString();
Konsol. WriteLine (dtString); // output: 01/01/2018 00:00:00

Parsing af værdier til forskellige datatyper

Nu forstår du, hvordan du konverterer værdier fra en datatype til en anden. Dette er ikke de eneste konverteringer derude, så du er velkommen til at lære mere om andre datatyper i C#.

Du kan også undersøge, hvordan andre datatyper fungerer på andre sprog, såsom JavaScript.