vb.net visual-studio-2008 option-infer

vb.net - Mejores prácticas: opción Infer



visual-studio-2008 option-infer (5)

Aquí está mi recomendación:

Si ya ha configurado Opción explícita activada y Opción estricta activada (en cualquier nivel)

  1. Desactive Option Infer en el IDE y las propiedades del proyecto
  2. Active Option Infer en archivos de código cuando lo necesite. Esto garantiza que el código sea fácil de leer y, cuando está activado, alerta al lector sobre su uso y le recuerda que pase el mouse sobre la var para ver su tipo.

Cuando Option Explicit está desactivado ...

Turning Option Infer On permite que el viejo código VB6 lleno de variantes se compile y se ejecute mejor, ya que el compilador asigna un tipo a los vars en el momento de la compilación, en lugar de permitir que la var se vincule tarde. Sin embargo, se deben realizar pruebas para garantizar que los vars no almacenen varios tipos durante su ciclo de vida.

NOTA: Esto no es un sustituto de una refactorización adecuada del código VB6 portado a punto NET. Las variantes son malas, niños, mm''kay?

¿Cuáles cree que son las mejores prácticas para el uso de Option Infer en sus proyectos?

En Visual Studio 2008, Option Infer es una directiva que permite al compilador inferir el tipo de datos de una variable declarada observando lo que se le ha asignado.

Esta es una característica clave en VS2008 y se usa ampliamente con declaraciones y consultas LINQ. Sin embargo, activar Option Infer puede crear riesgos para futuros programadores de mantenimiento.


Creo que es una opción segura porque no se puede pasar un tipo "Var" a través de los límites del método. No soy un gran admirador de los tipos de variantes VB o Javascript, pero el Var en C # es bastante útil. No rechazaría la opción si planea usar Linq.

--Mate


La inferencia de tipo VB.Net no se puede usar en páginas aspx en el entorno de Confianza parcial ... Como suele suceder, las opciones predeterminadas de VB.Net hacen que nuestra vida sea más difícil. En VB9, la útil opción Infer está desactivada por defecto. No podemos escribir Option Infer On ... No podemos escribir <% @ Page ... infer = "true"%> en la parte superior de la página ... No podemos escribir en web.config ... Alguien simplemente se olvidó de VB .Red.

......

Vea aquí: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=321981


La inferencia de tipo utilizada por C # (y por lo tanto presumo otros lenguajes .net) es muy precisa (y excelente). El compilador solo permitirá la declaración si el tipo es claro y no ambiguo. Por lo tanto, el resultado no es realmente una pérdida de precisión ... es simplemente que está guardando al desarrollador para que no especifique el tipo más de una vez. Está reduciendo la duplicación en el código.

(EDITAR: Además, es importante darse cuenta de que el resultado todavía está fuertemente tipado . El compilador sabe, en tiempo de compilación , exactamente qué tipo es la variable. No hay nada como una variante involucrada. Si escribe var x = 42; simplemente se da cuenta de que x es una int porque coloca un int en el lado derecho, lo que le ahorra algo de tipeo y duplicación).

La única razón por la que los programadores de mantenimiento futuro podrían no entenderlo es, en primer lugar, si simplemente no comprenden la característica de lenguaje de la inferencia de tipo. Pero creo que es más sensato esperar y exigir que los programadores de mantenimiento conozcan las características del idioma, que evitar las características de buen lenguaje por temor a que los programadores futuros no las conozcan.

Supongo que si estás en una situación en la que sabes que los futuros programadores son junior y no saben mucho sobre el idioma, entonces tal vez deberías evitar algunas cosas. Pero eso me hace preguntarme si deberían considerar algún otro lenguaje, o incluso una "plataforma" como Access, que es un híbrido de "programación real" y algo con lo que un no programador puede hacer algunas cosas.


La mayoría de los errores que veo tienen que ver con Estricto y Explícito, pero algunos ocurren con Infer. Para VB, creo que esta Opción estricta activada: Opción explícita activada: Opción Inferir desactivada es el mejor lugar para comenzar. Hace que escribir para Next sea un poco más engorroso, pero significa que no habrá dudas sobre su intención.