113 votes

Parse v. TryParse

Quelle est la différence entre Parse () et TryParse ()?

 int number = int.Parse(textBoxNumber.Text);

// The Try-Parse Method
int.TryParse(textBoxNumber.Text, out number);
 

Existe-t-il une forme de vérification d'erreur comme un bloc Try-Catch?

159voto

Greg Beech Points 55270

Parse lève une exception si il ne peut pas analyser la valeur, tandis que l' TryParse renvoie un bool indiquant si elle a réussi.

TryParse n'est pas seulement try/catch en interne - le but de cela est qu'il est mis en œuvre sans exceptions, de sorte qu'il est rapide. En fait, la façon dont il est probablement mis en œuvre, c'est que l'intérieur de l' Parse méthode appelle TryParse , puis de lancer une exception si elle renvoie false.

En un mot, utilisez Parse si vous êtes sûr que la valeur sera valide; sinon, utilisez TryParse.

27voto

M4N Points 48758

Si la chaîne ne peut pas être convertie en un entier, alors

  • int.Parse () va lancer une exception
  • int.TryParse () retournera false (mais ne lèvera pas d'exception)

4voto

Ray Booysen Points 10606

La méthode TryParse vous permet de tester si quelque chose est analysable. Si vous essayez d'analyser comme dans la première instance avec un entier invalide, vous obtiendrez une exception tandis que dans TryParse, il retournera un booléen vous permettant de savoir si l'analyse a réussi ou non.

En note de bas de page, le passage à null dans la plupart des méthodes TryParse lève une exception.

4voto

Gulzar Nazim Points 35342

TryParse et la taxe d'exception

Parse lève une exception si la conversion d'une chaîne en type de données spécifié échoue, alors que TryParse évite explicitement de lever une exception.

0voto

Mark Brittingham Points 18970

TryParse ne renvoie pas la valeur, il retourne un code de statut pour indiquer si l'analyse a réussi (et ne génère pas d'exception).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X