Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 is opgegeven, retourneert TryParse
onwaar en stelt de uit-parameter in op nul. Anders wordt "true" geretourneerd en wordt de out-parameter ingesteld op de numerieke waarde van de tekenreeks.
Opmerking
Een tekenreeks kan alleen numerieke tekens bevatten en toch niet geldig zijn voor het type waarvan u de TryParse
-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 decimal
waarde.
Voorbeeld
De volgende voorbeelden laten zien hoe u kunt gebruiken TryParse
met tekenreeksweergaven van long
, byte
en 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 = {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 = {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 = {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.