Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Wanneer u een nieuwe variabele declareert in C#, initialiseert u deze meestal met een bepaald gegevenstype. Dit kan een geheel getal, decimaal getal, booleaanse waarde, tekenreeks of een ander gegevenstype zijn.

U kunt een waarde van het ene gegevenstype naar het andere converteren. Als u bijvoorbeeld een tekenreeks naar een geheel getal converteert, moet u eerst de waarde ontleden. Hier volgen enkele verschillende manieren waarop u waarden kunt converteren en parseren.

Waarom moet u gegevens converteren of parseren?

Een voorbeeld van wanneer u mogelijk gegevens moet parseren, is als u om gebruikersinvoer vraagt ​​in een C#-consoletoepassing:

Troosten. Schrijf lijn("Vul je leeftijd in:");
string salaris = Console. Lees regel();

In dit geval voert de gebruiker een geheel getal in, maar de toepassing slaat deze standaard op als een tekenreeks. Als u de tekenreekswaarde in berekeningen probeert te gebruiken, krijgt u een compilatiefout:

instagram viewer

Een andere reden om gegevenstypen te converteren, is om toegang te krijgen tot bepaalde methoden die alleen beschikbaar zijn voor een specifiek gegevenstype. De DateTime-structuur bevat bijvoorbeeld een functie waarmee u minuten kunt toevoegen. Als je in plaats daarvan een string zou gebruiken, zou je geen toegang hebben tot de methode:

U kunt ook een waarde naar een ander gegevenstype converteren als u de gegevenstypestructuur van a klasse gemaakt in C# of een structuur in C#.

Hoe verschillende gegevenstypen te converteren en te ontleden

U kunt verschillende gegevenstypen ontleden, zoals gehele getallen, dubbele waarden, booleaanse typen en datum/tijd-typen.

Tekenreeksen naar gehele getallen

Gebruik de methode Parse() om een ​​tekenreeks naar een geheel getal te converteren:

tekenreeks strInt = "45";
int int32 = Int32.Ontleden (strInt);
Troosten. Schrijfregel (int32); // opbrengst: 45

U kunt de tekenreeks ook ontleden in gehele getallen met verschillende bitgroottes, zoals Int16, Int32 of Int64.

int int16 = Int16.Ontleden (strInt);
Troosten. Schrijfregel (int16); // opbrengst: 45

Als u de methode Parse() gebruikt, moet u ervoor zorgen dat de tekenreekswaarde een geheel getal vertegenwoordigt. Als u probeert een niet-gehele waarde, zoals "Hallo", te ontleden, krijgt u tijdens runtime een parseerfout.

string ongeldigString = "Hallo";
int invalidResult = Int32.Parse (invalidString);

U kunt ook de methode TryParse() gebruiken om uitzonderingen op te vangen die kunnen optreden bij het parseren:

int tryParseResult = 0;

als (Int32.TryParse(invalidString, uittryParseResult))
{
Troosten.Schrijf lijn(tryParseResult);
}
anders
{
Troosten. Schrijf lijn("Er is iets fout gegaan");
}

Gebruik de methode ToString() om een ​​geheel getal weer om te zetten in een tekenreeks:

string intString = 45.ToString();
Troosten. Schrijfregel (intString); // opbrengst: 45

Strings naar Doubles

Het ontleden van een string naar een double lijkt sterk op het ontleden van een naar een geheel getal. Gebruik de methode Parse() uit de klasse Double:

tekenreeks strDubbel = "90.5";
dubbele d = Dubbel. Ontleden (strDouble);
Troosten. Schrijfregel (d); // uitvoer: 90,5

Net als bij gehele getallen kunt u ook de methode TryParse() gebruiken om mogelijke parseerfouten op te sporen:

tekenreeks ongeldigStringDouble = "Hallo";
dubbele tryParseDouble = 0;

als (Dubbele.TryParse(invalidStringDouble, uitprobeerParseDouble))
{
Troosten.Schrijf lijn(probeerParseDouble);
}

Gebruik de methode ToString() om een ​​double back om te zetten in een geheel getal:

dubbele dDubbel = 90.5;
string dString = dDubbel. ToString();
Troosten. Schrijfregel (dString); // uitvoer: 90,5

Verdubbelt naar gehele getallen

U kunt casten gebruiken om een ​​double om te zetten in een integer. Omdat een geheel getal alleen een geheel getal opslaat, worden bij de conversie de decimalen verwijderd. Als u bijvoorbeeld "12,34" converteert, wordt alleen de waarde "12" opgeslagen.

dubbele dWaarde = 12.34;
int iWaarde = (int)dWaarde;
Troosten. Schrijfregel (iValue); // uitvoer: 12

Je kunt ook een geheel getal terug casten naar een double:

dWaarde = (dubbele)ik waardeer;
Troosten. Schrijfregel (dValue); // uitvoer: 12

Strings en Booleaanse waarden

Gebruik de methode Parse() of ToBoolean() om een ​​tekenreeks om te zetten in een boolean:

tekenreeks tekenreeksBool = "WAAR";
bool b = bool. Ontleden (stringBool);

// of

b = Converteren. ToBoolean (stringBool);
Troosten. Schrijfregel (b); // uitvoer: waar

Gebruik de methode ToString() om een ​​booleaanse waarde terug te converteren naar een tekenreeks:

tekenreeks strTrue = WAAR.ToString();
tekenreeks strFalse = vals.ToString();

Integers en Booleaanse waarden

Om een ​​geheel getal om te zetten in een booleaanse waarde, gebruikt u de methode ToBoolean() om een ​​"1" of "0" om te zetten in de equivalente booleaanse waarde. De waarde "1" wordt geconverteerd naar "true" terwijl "0" wordt geconverteerd naar "false":

int falseBit = 0;
int waarBit = 1;
Troosten. Schrijfregel (convert. ToBoolean (falseBit)); // uitvoer: onwaar
Troosten. Schrijfregel (convert. ToBoolean (trueBit)); // uitvoer: waar

U kunt ook een andere integerwaarde dan "1" of "0" doorgeven aan de ToBoolean()-methode. Standaard retourneert de methode nog steeds "true":

int invalidBit = 8;
Troosten. Schrijfregel (convert. ToBoolean (invalidBit)); // uitvoer: waar

Gebruik de Convert. ToInt32() methode. Als u "true" converteert, wordt een "1" geretourneerd en als u "false" converteert, wordt een "0" geretourneerd.

bool iBool = WAAR;
int bInt = Converteren. NaarInt32(iBool);
Troosten. Schrijfregel (bInt); // uitvoer: 1

Strings naar DateTime

Gebruik de DateTime. Parse() methode:

DateTime newDateTime = DateTime. Ontleed("01/01/2018 00:00:00");
Troosten. WriteLine (nieuweDatumTijd); // uitvoer: 01/01/2018 00:00:00

Gebruik de methode ToString() om een ​​datetime terug te converteren naar een tekenreeks:

DatumTijd dt = nieuw Datum Tijd(2018, 1, 1);
string dtString = dt. ToString();
Troosten. Schrijfregel (dtString); // uitvoer: 01/01/2018 00:00:00

Waarden parseren naar verschillende gegevenstypen

U begrijpt nu hoe u waarden van het ene gegevenstype naar het andere converteert. Dit zijn niet de enige conversies die er zijn, dus voel je vrij om meer te leren over andere gegevenstypen in C#.

U kunt ook onderzoeken hoe andere gegevenstypen werken in andere talen, zoals JavaScript.