Analyser 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);
Est-il une forme de vérification des erreurs comme un Bloc Try-Catch?
Vous devez vous connecter pour publier un commentaire.
Parse
lève une exception si il ne peut pas analyser la valeur, tandis queTryParse
renvoie unebool
indiquant si elle a réussi.TryParse
n'est pas seulementtry
/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 est celui de l'intérieur, laParse
méthode appelleTryParse
et puis lève une exception si elle renvoiefalse
.En un mot, utilisez
Parse
si vous êtes sûr que la valeur sera valide; sinon, utilisezTryParse
.Si la chaîne ne peut pas être convertie en un nombre entier, alors
int.Parse()
lèvera une exceptionint.TryParse()
retourne false (mais pas de lever une exception)La méthode TryParse vous permet de tester si quelque chose est parseable. Si vous essayez de l'Analyser comme dans le premier exemple avec une défaillance de type int, vous aurez une exception alors que dans le TryParse, elle retourne un booléen vous permettant de savoir si l'analyse a réussi ou non.
Comme une note de bas de page, en passant la valeur null à la plupart des TryParse méthodes lèvera une exception.
TryParse et à l'Exception de l'Impôt
Analyser déclenche une exception si la conversion à partir d'une chaîne spécifiée type de données échoue, alors que TryParse explicitement évite de lancer une exception.
TryParse ne retourne pas de valeur, il renvoie un code d'état pour indiquer si l'analyse a réussi (et ne lance pas d'exception).
Pour l'enregistrement, je suis en train de tester deux codes: Que simplement essayer de convertir une chaîne en un nombre et si elle échoue puis assigner le nombre de zéro.
et:
Pour c#, la meilleure option est d'utiliser tryparse parce que essayer&Attraper alternative jeté l'exception
Que c'est douloureux lente et indésirable, cependant, le code ne s'arrête pas à moins de Débogage de l'exception sont réglés pour s'arrêter avec elle.
Je sais que c'est un très vieux post, mais la pensée de partager quelques détails de plus sur Analyser vs TryParse.
J'ai eu un scénario où DateTime doit être converti en Chaîne de caractères et si datevalue null ou une chaîne.vide nous avons été confrontés à une exception. Afin de surmonter cette difficulté, nous avons remplacé Analyser avec TryParse et obtenir la date du jour par défaut.
Ancien Code:
Nouveau Code:
Devez déclarer une variable et utilisé comme pour TryParse.
startDate
etendDate
queDateTime.TryParse
toujours les écraser avecDateTime.MinValue
. Si une date incorrecte représentations doivent être convertis à une autre valeur, vérifier la valeur de retour deDateTime.TryParse
et si elle est fausse, définissez la valeur explicitement.DateTime?
(DateTime nullable)double.Parse("-"); soulève une exception, alors que
double.TryParse("-", sur analysé); analyse à 0
donc je suppose que TryParse ne plus complexe conversions.
TryParse
retourtrue
oufalse
? C'est la façon dont vous allez savoir si c'était "valide".