Diferencias en la lógica de VB.NET y C#
Encontré una diferencia notable en la lógica de VB.NET con la de C#. En el segundo, es posible hacer una sentencia del tipo:if( objeto != null && objeto.Condicion )
{
//Esto lo realiza si el objeto existe y se da la condición
}
Esto quiere decir que el compilador evalúa la primer expresión lógica, y solo si es verdadera evalúa la segunda. En VB.NET, una sentencia equivalente mandaría una excepción:
If Not IsNothing(objeto) And objeto.Condicion Then
‘Manda una excepción si el objeto es nulo
End If
El compilador trata de evaluar toda la sentencia al mismo tiempo por lo que si el objeto es nulo, manda la excepción al intentar evaluar la segunda expresión. Tuve que reescribir el if anidando:
If Not IsNothing(objeto) Then
If objeto.Condicion Then
‘Llega en las condiciones correctas
End If
End If
Si alguien sabe una forma mejor de hacerlo, por favor díganmelo :D
Nota adicional: ¡Qué feo es VB!
0 Comments:
Post a Comment
<< Home