AndAlso en vbscript?????
AndAlso en vbscript?????
como ya varios saben , vbscript no tiene un "cortafuego" por defecto,
que la mayoria de los lenguajes tiene.
por ejemplo JAVA
este codigo esta bien para Java, ya que si persona es nulo no evalua
la segunda Expresion, y por ende no se cae por un nullPointerExecepction.
Ahora vamos a nuestro querimo VbScript.
El mismo Ejemplo
Este codigo lamentablemente se cae, por que apesar de que no se
cumple la primera expresion, igual evalua la segunda. de Esta Forma tenemos un
bonito nullPoinerException
como hay que hacerlo en VBScript.
De Esta forma con el AndAlso, le decimos al framework
que si la primera expresion no se cumple, no es necesario que evalue la segunda.
pregunta:
¿por que esto no vendra por defecto en Visual Basic Script?
creo que seria mas comodo si el and lo hiciera automaticamente.
por si alguien sabe.
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com
como ya varios saben , vbscript no tiene un "cortafuego" por defecto,
que la mayoria de los lenguajes tiene.
por ejemplo JAVA
persona = null;
if (persona != null && persona.nombre ="Victor"){
este codigo esta bien para Java, ya que si persona es nulo no evalua
la segunda Expresion, y por ende no se cae por un nullPointerExecepction.
Ahora vamos a nuestro querimo VbScript.
El mismo Ejemplo
Dim persona as persona = nothing
If not persona is nothing and persona.nombre ="Victor" then
End If
Este codigo lamentablemente se cae, por que apesar de que no se
cumple la primera expresion, igual evalua la segunda. de Esta Forma tenemos un
bonito nullPoinerException
como hay que hacerlo en VBScript.
Dim persona as persona = nothing
If not persona is nothing andAlso persona.nombre ="Victor" then
End If
De Esta forma con el AndAlso, le decimos al framework
que si la primera expresion no se cumple, no es necesario que evalue la segunda.
Dim persona as persona = nothing
If not persona is nothing andAlso persona.nombre ="Victor" then
End If
pregunta:
¿por que esto no vendra por defecto en Visual Basic Script?
creo que seria mas comodo si el and lo hiciera automaticamente.
por si alguien sabe.
--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com
Supongo que será por mantener la compatibilidad hacia atrás.
ResponderEliminarPor cierto, también existe OrElse, que es la version con cortocircuito del Or.
pucha me jodiste el proximo post, jejejejejeje :)
ResponderEliminar