2010-03-02 14 views
8

¿Cómo uso el método TryParse dentro de un predicado? TryParse requiere un parámetro de salida. En el siguiente ejemplo, me gustaría llamar a TryParse para determinar si x se puede convertir en un entero. Realmente no me importa el parámetro out, solo quiero compilarlo.¿Cómo llamo TryParse desde dentro de un predicado

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

Respuesta

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

La parte "expresión" de un lambda se puede envolver en los apoyos, lo que permite un cuerpo de función completa con varias instrucciones. Siempre que el resultado de ese cuerpo sea el mismo que el valor de retorno de la función implícita que está implementando, puede hacer lo que tenga que hacer entre esos refuerzos.

3

Si no se preocupan por la salida, puede hacerlo de esta manera:

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