Diferencia entre "" y Nothing en un String

20/08/2004 - 12:49 por 44r0x0r44 | Informe spam
Cuand leo lineas de un StreamReader me baso en que el
método ReadLine devuelva Nothing para saber que he llegado
al final del archivo pero resulta que si leo una línea que
solo tiene un retorno de carro, el retorno de carro es
eliminado y el valor devuelto por ReadLine es "" que según
el libro "Programación en Microsoft® Windows® con
Microsoft® Visual Basic® .NET de Charles Petzold" es
diferente de Nothing, pero si miramos esto:

If "" <> Nothing Then
MessageBox("No es igual","Verificacion")
Else
MessageBox("Es igual","Verificacion")
End If

¡¡Veremos que en nuestra pantalla tendremos un cuadro de
mensaje que nos indicara que "" y Nothing son absolutamente
iguales!!

¿que otro metodo tengo para saber que he leido todas las
lineas que necesito sin preocuparme por las lineas vacias?
 

Leer las respuestas

#1 Leonardo Azpurua
20/08/2004 - 13:37 | Informe spam
Hola, Paper:

El problema es que no debes comparar la igualdad con Nothing (es decir x Nothing normalmente no es correcto) sino la nulidad de la referencia
(mediante el operador Is Nothing:).

Si escribes Console.WriteLine("" Is Nothing) obtendrás False

De manera que Nothing y "" (String vacío) son dos cosas definitivamente
diferentes: confía en Petzold y en la documentación.

Salud!

Leonardo
"44r0x0r44" escribió en el mensaje
news:2a0f01c486a3$5045a7f0$
Cuand leo lineas de un StreamReader me baso en que el
método ReadLine devuelva Nothing para saber que he llegado
al final del archivo pero resulta que si leo una línea que
solo tiene un retorno de carro, el retorno de carro es
eliminado y el valor devuelto por ReadLine es "" que según
el libro "Programación en Microsoft® Windows® con
Microsoft® Visual Basic® .NET de Charles Petzold" es
diferente de Nothing, pero si miramos esto:

If "" <> Nothing Then
MessageBox("No es igual","Verificacion")
Else
MessageBox("Es igual","Verificacion")
End If

¡¡Veremos que en nuestra pantalla tendremos un cuadro de
mensaje que nos indicara que "" y Nothing son absolutamente
iguales!!

¿que otro metodo tengo para saber que he leido todas las
lineas que necesito sin preocuparme por las lineas vacias?

Preguntas similares