Delen via


Bepalen of een tekenreeks een numerieke waarde vertegenwoordigt (C#-programmeerhandleiding)

Als u wilt bepalen of een tekenreeks een geldige weergave is van een opgegeven numeriek type, gebruikt u de statische TryParse methode die wordt geïmplementeerd door alle primitieve numerieke typen en ook door typen zoals DateTime en IPAddress. In het volgende voorbeeld ziet u hoe u kunt bepalen of 108 een geldige int is.

int i = 0;
string s = "108";  
bool result = int.TryParse(s, out i); //i now = 108  

Als de tekenreeks niet-numerieke tekens bevat of de numerieke waarde te groot of te klein is voor het specifieke type dat u hebt opgegeven, TryParse retourneert u onwaar en stelt u de parameter in op nul. Anders wordt true geretourneerd en wordt de outparameter ingesteld op de numerieke waarde van de tekenreeks.

Notitie

Een tekenreeks mag alleen numerieke tekens bevatten en nog steeds niet geldig zijn voor het type waarvan TryParse u de methode gebruikt. '256' is bijvoorbeeld geen geldige waarde voor byte , maar is geldig voor int. "98,6" is geen geldige waarde voor int , maar het is een geldige decimalwaarde.

Opmerking

De volgende voorbeelden laten zien hoe u kunt gebruiken TryParse met tekenreeksweergaven van long, byteen decimal waarden.


string numString = "1287543"; //"1287543.0" will return false for a long
long number1 = 0;
bool canConvert = long.TryParse(numString, out number1);
if (canConvert == true)
Console.WriteLine("number1 now = {0}", number1);
else
Console.WriteLine("numString is not a valid long");

byte number2 = 0;
numString = "255"; // A value of 256 will return false
canConvert = byte.TryParse(numString, out number2);
if (canConvert == true)
Console.WriteLine("number2 now = {0}", number2);
else
Console.WriteLine("numString is not a valid byte");

decimal number3 = 0;
numString = "27.3"; //"27" is also a valid decimal
canConvert = decimal.TryParse(numString, out number3);
if (canConvert == true)
Console.WriteLine("number3 now = {0}", number3);
else
Console.WriteLine("number3 is not a valid decimal");

Robuuste programmering

Primitieve numerieke typen implementeren ook de Parse statische methode, die een uitzondering genereert als de tekenreeks geen geldig getal is. TryParse is over het algemeen efficiënter omdat het alleen onwaar retourneert als het getal niet geldig is.

.NET-beveiliging

Gebruik altijd de TryParse of Parse methoden om gebruikersinvoer te valideren van besturingselementen zoals tekstvakken en keuzelijsten met invoervak.

Zie ook