Realmente me molesta que el IDE VS 2010 no me esté gritando por intentar pasar Nothing a través de un parámetro de método que toma una enumeración definida por el usuario. En cambio, pasa del 0 al método. C# nunca permitiría esto. ¿Hay algún modificador de nivel de módulo que pueda agregar como option strict
que obligue al IDE a no permitir estos tipos de conversiones implícitas?VB.NET: ¿Hay alguna manera de evitar que Nothing pase a 0 por defecto para los tipos de números?
Respuesta
Lamentablemente, no.
Pero es posible asignar valores a los miembros de su enumeración, mientras que saltarse 0
(o utilizar un marcador de posición llamado None
o algo por el estilo), y al menos manejar este caso en tiempo de ejecución.
Sub Main
MyMethod(Nothing) ' throws Exception
End Sub
Sub MyMethod(e as MyEnum)
If e = 0 Then
Throw New Exception
End If
End Sub
Enum MyEnum
a=1
b=2
c=3
End Enum
Nada es el equivalente de por defecto en el lenguaje C#. Entonces no
reconsiderar su estilo de programación, Nada se debe utilizar muy escasamente. Básicamente solo en código genérico, el mismo lugar en el que usaría predeterminado en C#. No lo necesita en ningún otro lugar, VB.NET no insiste en la inicialización de variables como lo hace C#. Cualquier variable de un tipo de referencia se inicializa en Nothing automáticamente. Cringe digno de un programador C# tal vez, pero totalmente idiomático en el código VB.NET.
No creo que sea posible evitar literalmente 'Nothing' como parámetro de método (que es el caso del que habla el OP). – Heinzi
Eso también es posible, los parámetros opcionales siempre han sido bien soportados. –
- 1. ¿Hay alguna manera de tener argumentos dinámicos por defecto?
- 2. ¿Hay alguna manera de concaturar los tipos anónimos de C#?
- 3. ¿Hay alguna manera de evitar recursiones innecesarias?
- 4. ¿Hay interfaces compartidas por tipos de valores que representan números?
- 5. .NET DBNull vs Nothing en todos los tipos de variables?
- 6. Lenguaje VB.NET y Nothing: ¿por qué es así?
- 7. ¿Hay alguna manera de hacer referencia a los comentarios xml para evitar duplicarlos?
- 8. Python: ¿Hay alguna manera de evitar que ocurra una conversión automática de int a long int?
- 9. ¿Hay alguna manera de escribir un Método de extensión que se aplique a varios tipos?
- 10. ¿Hay alguna manera de evitar la búsqueda lineal en esto?
- 11. VB.Net Linq a las entidades Comparación nula - 'Is Nothing' o '= Nothing'?
- 12. ¿Hay alguna manera de evitar que Hibernate corrompa los literales booleanos en @Where annotations?
- 13. ¿Hay alguna manera de evitar el código de spaghetti a través de los años?
- 14. ¿Hay alguna manera de evitar que los usuarios guarden documentos localmente?
- 15. ¿Hay alguna manera de evitar que Symfony2 envíe cookies de sesión para ciertas rutas?
- 16. Oracle: ¿Hay alguna manera de obtener los tipos de datos de columna para una vista?
- 17. ¿Hay alguna manera de redondear números en un formato amigable para el lector? (Por ejemplo, $ 1.1k)
- 18. manera Pythonic para asignar valores por defecto
- 19. ¿Hay alguna manera de efectuar tipos de datos definidos por el usuario en MySQL?
- 20. ¿Hay alguna manera de implementar tipos algebraicos en Java?
- 21. ¿Hay alguna manera de evitar que los atributos serializados en los rieles se actualicen incluso si no hay cambios?
- 22. ¿Hay alguna manera de evitar que Mobile Safari inserte comas en campos numéricos en formularios HTML?
- 23. ¿C++ permite tipos de devolución por defecto para las funciones?
- 24. ¿Hay alguna manera de hacer que vim reconozca los números de línea al final de los nombres de archivo?
- 25. ¿Hay alguna manera de evitar $ this-> en todas partes?
- 26. ¿Cómo mostrar los números de línea por defecto en SciTE?
- 27. ¿Hay alguna manera de controlar qué repositorios buscará Leiningen por defecto?
- 28. ¿Hay alguna manera de evitar que los metadatos C# se muestren al navegar a una clase o método en un proyecto VB.NET desde un proyecto de C#
- 29. Hacer todos los tipos constantes por defecto en C++
- 30. ¿Hay alguna manera de evitar actualizar automáticamente los campos de marca de tiempo de Rails?
Buena respuesta, pero me entristece. – oscilatingcretin