Bug en string.IsNullOrEmpty() del .NET Framework 2.0
Este método estático de la clase string en C# 2 es sumamente útil, ya que ahorra el trabajo de la verificación de valores nulos al querer saber si un string está vacío. Sin embargo, hay un bug localizado muy específico:
En una aplicación de consola, compilada en modo release, ejecutándose en un ambiente producción (fuera del IDE de Visual Studio) y usada dentro de algún ciclo como for o while, se genera la siguiente excepción del JIT:
Null Exemption caused by JIt optimisation around String.IsNullOrEmpty
Así, un código tan simple como este dejará de funcionar:
-
for (int j = 0; j <10; j++)
-
11 {
-
12 if (String.IsNullOrEmpty(x))
-
13 {
-
14 //TODO:
-
15 }
-
16 }
Todo el detalle específico del bug incluyendo workarounds disponibles en:
Si bien es un caso muy específico, siempre es bueno saberlo para que no pasar horas buscando algún error cometido por nosotros mismos.


