Wednesday, November 29, 2006

dos chequeos en uno usando bool.TryParse

Me acabo de encontrar un codigo mas o menos asi:

bool b = bool.TryParse(ConfigurationManager.AppSettings["SomeSetting"].ToString(), out b);

Pueden ignorar el hecho de que no estoy checando valores NULL en el appsettings.

A primera vista pense que era un bug, pero luego leyendo la documentacion, escribi un pequeña prueba y algo de investigacion usando Reflector, resulta que hace exactamente lo que necesitaba

bool.TryParse no regresa el valor que resulta de la conversion del string que le pasamos; sino que regresa true o false, indicando si la conversion se realizo exitosamente, el valor de la conversion se regresa en el parametro out (que es la misma variable en este caso). Asi que la unica forma de regresar true es

  • Que la conversion se realize exitosamente
  • Que el valor sea true

Asi que ya no necesito hacer 2 chequeos

if (bool.TryParse(someVariable, out b))

  if (b)...

...De esas pequeñas pero peligrosas lineas de codigo que luego nos muerden...

2 comments:

santo said...

hola black primera vez por aca aprovechando de tu conocimiento podrias decirme con que software puede ver un archibo VSD???? se supone que es de algoritmos programacion y diagrama de flujo
saludos pense que te dedicabas a otra cosa

BlackTigerX said...

que tal, como de que tengo cara de que me dedico a que? =oP

esos archivos son de Visio, puedes bajar el visor (gratis) aca
http://www.microsoft.com/downloads/details.aspx?familyid=3fb3bd5c-fed1-46cf-bd53-da23635ab2df&displaylang=en

salu2