
Nexura Internacional
Pregunta¿que diferencia hay entre isNullOrempty y isNullOrWhiteSpace?

Dorian Vallecillo Calderón
Mira, basado en mi experiencia con C y C++, los strings o cadenas puedes casi considerarse un ++TIPO DE DATO ++ no primitivo
Disculpa el error de concepto

Dorian Vallecillo Calderón
Hola ! Mira, basado en mi experiencia con C y C++, los strings o cadenas puedes casi considerarse un objeto no primitivo. Debido a que en C y C++ un string es una coleccion(vector) de tipos de dato char. https://stackoverflow.com/questions/7743356/length-of-a-c-stdstring-in-bytes
Osea, si tenias la siguiente cadena
string cadena= new String("hola"); // Esta cadena es una coleccion de 4 chars(1 byte cada char o 8 bits cada char). Por lo que tendriamos en memoria(32 bits)
En este caso el string esta lleno(no es null y no esta vacio)
Basado en ASCII para que un string sea null o vacio su valor debe ser
string stringNull="\0"; // "vacio" o bien, string stringNull=null; // valor null
==================================== para que un string sea white space(espacio en blanco), su valor o valores tienen que ser espacion, que en ascii estan representado como /32
string cadenaEnBlanco= new string("\32"); string cadenaEnBlanco= new string(" "); string cadenaEnBlanco= new string(" "); string cadenaEnBlanco= new string("\32 \n \32 ");
Puedes darte una mirada a los siguientes links:
https://stackoverflow.com/questions/18410234/how-does-one-represent-the-empty-char/18410297

Juan David Amaya Cardenas
Hola @jsotonx
Te dejo algunos ejemplos que encontre que te ayudaran a entender mejor la situación que te expone @strivensonrincon
string.IsNullOrWhiteSpace("\t"); //true string.IsNullOrEmpty("\t"); //false
string.IsNullOrWhiteSpace(" "); //true string.IsNullOrEmpty(" "); //false
string.IsNullOrWhiteSpace("\n"); //true string.IsNullOrEmpty("\n"); //false

Nexura Internacional
o sea q si paso un espacio blanco con whitespace da true pero con empty da false

Stivenson Rincon Mora
Hola jsontonx.
La diferencia entre la primera y la segunda, es que la segunda evalúa en caso de no ser null si lo que contiene son solo espacios en blanco, osea una variable con caracteres no visibles pero que llenan la variable, ya sean uno o varios de estos caracteres).
En otras palabras, dicha variable, daría false con el método "isNullOrempty" (pues evaluá que la variable sea null ó este vaciá y pues no lo esta), pero daría true con el método "isNullOrWhiteSpace" pues esta segunda evalúa que No sea null y que en caso de no ser null y este llena entonces verifica si ese llenado son solo espacios en blanco.