Después de un incidente en el trabajo en el que utilicé 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, al parecer hay un error enumerado para IsNullOrEmpty en MSDN (link) (leer nota al final):C# String.IsNullOrEmpty: ¿bueno o malo?
Hasta el 4 de abril de 2006, hay un error (posible en el ECI) que hace este método falla cuando las optimizaciones están activadas . Se sabe que afecta tanto a C# como a VB.
Más información se puede encontrar aquí (link). Microsoft, el error es 'supuestamente' fijo después de Orcas, pero desafortunadamente mi empleador todavía usa VS2005. Pero si el problema se soluciona en 2008+, que así sea. Eso está bien conmigo.
Mientras que la negativa de mi colega de mi código con IsNullOrEmpty para mí es ciega ignorancia (OMI) que ciertamente no puede decirme por qué no de usar que no sea el mal uso de la variable de sesión. He usado IsNullOrEmpty en todo nuestro código sin problemas. Personalmente, me resulta 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 tienen los pros/la postura. Éstos 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 (en mi humilde opinión) bastante bien:
Aquí busqué ese método IsNullOrEmpty en el tipo de cadena, que nos proporciona un método bueno y relativamente eficiente de comprobar si un cadena está bien para guardar o usar. Sin embargo, para el rendimiento, puede ser mejor que use cheques nulos manuales. Las cadenas vacías también se pueden probar de otras formas, y mi investigación aquí muestra que la comprobación de es la más rápida.
Suponiendo la corrección de errores está en su lugar (y trabajando 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 exagerado 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.
Gracias, voy a buscar obtener el paquete de servicio si aún no está instalado. No estoy seguro de todos los detalles que tendré que saltar, pero de cualquier forma, deberíamos ejecutar el último service pack en nuestro servidor web independientemente. ¡Gracias! – osij2is