C # String.IsNullOrEmpty: bueno o malo?

Después de un incidente en el trabajo en el que hice mal uso de String.IsNullOrEmpty con una variable de sesión, un compañero de trabajo mío ahora se niega a aceptar mi uso de String.IsNullOrEmpty. Después de algunas investigaciones, aparentemente hay un error listado para IsNullOrEmpty en MSDN (enlazar) (lea la nota en la parte inferior):

A partir del 4 de abril de 2006, hay un error (posible en el JIT) que hace que este método falle cuando se activan las optimizaciones. Se sabe que afecta tanto a C # como a VB.

Más información se puede encontrar aquí (enlazar). Microsoft el error es "supuestamente" arreglado después de las orcas, pero desafortunadamente mi empleador todavía usa VS2005. Pero si el problema se soluciona en 2008+ así sea. Eso está bien conmigo.

Si bien la negativa de mi colega de mi código con IsNullOrEmpty para mí es una ignorancia ciega (OMI), ciertamente no puede decirme por quéno para usarlo con excepción del mal uso con la variable de sesión. He usado IsNullOrEmpty en todo nuestro código sin problemas. Personalmente, me parece mucho más legible además de hacer dos cosas en una declaración.

Después de buscar en Google las opiniones sobre el tema, he encontrado sitios que adoptan la postura de los profesionales. Estos son algunos de los sitios que he leído sobre esto:

https://blog.rthand.com/post/2006/06/22/1063.aspx

http://www.omegacoder.com/?p=105

Un sitio (http://dotnetperls.com/isnullorempty) resume el método (IMHO) bastante bien:

Aquí examinamos el método IsNullOrEmpty en el tipo de cadena, que nos proporciona un método bueno y relativamente eficiente para verificar si una cadena está bien para guardar o usar. Sin embargo, para el rendimiento, puede ser mejor utilizar comprobaciones nulas manuales. Las cadenas vacías también se pueden probar de otras maneras, y mi investigación aquí muestra que la verificación de la longitud es más rápida.

Suponiendo que la corrección de errores está en su lugar (y funciona correctamente) en VS2008 / 2010 / etc., ¿Hay alguna razón?no utilizar String.IsNullOrEmpty con VS2005 y más allá? Me doy cuenta de que esto puede parecer un poco excesivo por un método tan tonto, pero me gustaría saber si hay más detrás de escena y si alguien tiene explicaciones alternativas.

Respuestas a la pregunta(10)

Su respuesta a la pregunta