No me gusta esto ... ¿Es esto engañar al idioma?
He visto algo como lo siguiente un par de veces ... y lo odio. ¿Es esto básicamente "engañar" al lenguaje? O ... ¿consideraría que esto está 'bien' porque el IsNullOrEmpty se evalúa primero, todo el tiempo?
(Podríamos discutir si una cadena debe ser NULL o no cuando sale de una función, pero esa no es realmente la pregunta).
string someString;
someString = MagicFunction();
if (!string.IsNullOrEmpty(someString) && someString.Length > 3)
{
// normal string, do whatever
}
else
{
// On a NULL string, it drops to here, because first evaluation of IsNullOrEmpty fails
// However, the Length function, if used by itself, would throw an exception.
}
EDITAR Gracias de nuevo a todos por recordarme este lenguaje fundamental. Si bien sabía "por qué" funcionó, no puedo creer que no supiera / recordara el nombre del concepto.
(En caso de que alguien quiera algún fondo ... Encontré esto al solucionar problemas de excepciones generadas por cadenas NULL y .Length> x excepciones ... en diferentes lugares del código. Entonces, cuando vi el código anterior, además de todo lo demás , mi frustración se hizo cargo de allí.)