visual software similares reemplaza que programas programa parecido net mejor como caracteristicas alternativa vb.net nothing

software - VB.NET-No es nada versus no es nada



visual basic vs c# (9)

Debes evitar el uso de IsNothing()

Aquí hay 4 razones del artículo IsNothing () VS Is Nothing

  1. Lo que es más importante, IsNothing(object) tiene todo lo que se le pasa como un objeto, ¡incluso tipos de valores! Como los tipos de valor no pueden ser Nothing , es un cheque completamente desperdiciado.
    Toma el siguiente ejemplo:

    Dim i As Integer If IsNothing(i) Then '' Do something End If

    Esto se compilará y ejecutará bien, mientras que esto:

    Dim i As Integer If i Is Nothing Then '' Do something End If

    No compilará, en su lugar el compilador generará el error:

    El operador ''Is'' no acepta operandos del tipo ''Integer''.
    Los operandos deben ser de referencia o nulos.

  2. IsNothing(object) es en realidad parte de Microsoft.VisualBasic.dll .
    Esto es indeseable ya que tiene una dependencia innecesaria en la biblioteca de VisualBasic.

  3. Es lento - 33.76% más lento de hecho (más de 1000000000 iteraciones)!

  4. Quizás preferencia personal, pero IsNothing() lee como una condición Yoda . Cuando observa una variable, está comprobando su estado, con ella como sujeto de su investigación.

    es decir, ¿hace x? --- NO es x ing una propiedad de eso ?

    Así que creo que If a IsNot Nothing lee mejor que If Not IsNothing(a)

¿Alguien aquí utiliza VB.NET y tiene una fuerte preferencia a favor o en contra de usar IsNothing en comparación con Is Nothing (por ejemplo, If IsNothing(anObject) o If anObject Is Nothing... )? Si es así, ¿por qué?

EDITAR: Si crees que ambos son igualmente aceptables, ¿crees que es mejor escoger uno y seguir con él, o está bien mezclarlos?


Estoy de acuerdo con "Is Nothing". Como se indicó anteriormente, es fácil negar con "No es nada".

Encuentro esto más fácil de leer ...

If printDialog IsNot Nothing Then ''blah End If

que esto...

If Not obj Is Nothing Then ''blah End If


Inicialmente usé IsNothing, pero he estado avanzando hacia el uso de Is Nothing en proyectos más nuevos, principalmente para la legibilidad. La única vez que me quedo con IsNothing es si mantengo el código donde se usa todo el tiempo y quiero mantener la coherencia.


Is Nothing requiere un objeto que se haya asignado al valor Nothing. IsNothing () puede tomar cualquier variable que no se haya inicializado, incluso de tipo numérico. Esto es útil, por ejemplo, cuando se prueba si se ha pasado un parámetro opcional.


Me inclino por la alternativa "Is Nothing", principalmente porque parece más OO.

Seguramente Visual Basic ain''t tiene la palabra clave Is not.


Me parece que Patrick Steele respondió mejor esta pregunta en su blog: Evitar IsNothing ()

No copié ninguna de sus respuestas aquí, para asegurar que Patrick Steele reciba crédito por su publicación. Pero creo que si intentas decidir si usar Is Nothing o IsNothing deberías leer su publicación. Creo que estarás de acuerdo en que Is Nothing es la mejor opción.


Si echas un vistazo al MSIL mientras se está ejecutando, verás que no se compila hasta el mismo código exacto. Cuando usa IsNothing (), en realidad realiza una llamada a ese método en lugar de simplemente evaluar la expresión.

La razón por la que tendía a inclinarme hacia el uso de "No es nada" es cuando lo estoy negando se convierte en "No es nada" en lugar de "No es nada (objeto)" que personalmente me parece más legible.


También tiendo a usar la versión Is Nothing parcialmente para usarla tanto como lo hago en SQL.


VB está lleno de cosas así tratando de hacer que sea "como el inglés" y cómodo para las personas que están acostumbradas a los idiomas que usan () y {} mucho. Por ejemplo, en el lado "como inglés" ... VB tiene la palabra clave " Ain''t " ... y no, no estoy bromeando. Y, por otro lado, como probablemente ya sabrá la mayoría de las veces, puede usar () con llamadas a funciones si lo desea, pero no es necesario.

Prefiero IsNothing () ... pero uso C y C #, así que eso es lo que es cómodo. Y creo que es más legible. Pero ve con lo que sea más cómodo para ti.