2010-03-02 7 views
8

Comment utiliser la méthode TryParse dans un prédicat? TryParse nécessite un paramètre out. Dans l'exemple ci-dessous, je voudrais appeler TryParse pour déterminer si x peut être converti en entier. Je ne me soucie vraiment pas du paramètre out - je veux juste que ça compile.Comment appeler TryParse à partir d'un prédicat

 string[] nums = num.Split('.'); 
     PexAssume.TrueForAll(nums, x => int.TryParse(x, out (int)0)); 

Répondre

9
string[] nums = num.Split('.'); 
PexAssume.TrueForAll(nums, x => { int result; return int.TryParse(x, out result); }); 

La partie « expression » d'un lambda peuvent être enveloppés dans des accolades, ce qui permet un corps de fonctions avec de multiples états. Tant que le résultat de ce corps est le même que la valeur de retour de la fonction implicite que vous implémentez, vous pouvez faire tout ce que vous avez à faire entre ces accolades.

3

Si vous ne se soucient pas de la sortie, vous pouvez le faire comme ceci:

string[] nums = num.Split('.'); 
int unused; 
PexAssume.TrueForAll(nums, x => int.TryParse(x, out unused)); 
Questions connexes