¿VB.NET tiene un equivalente directo a los outparámetros de la función C # , donde la variable pasada a una función no necesita ser inicializada?
vb.net
c#-to-vb.net
out-parameters
cspolton
fuente
fuente

Object, por lo que no se puede usar para unByRef x As Integerparámetro).ByRefparámetros. (No sucede con los parámetros de tipo de valor.)Nothingeliminará la advertencia aunque no cambie el resultado.Nothinghasta ahora. Simplemente lleva mucho tiempo, ya que tengo que hacerlo cientos de veces en un gran sitio web heredado. Gracias por investigar.Outatributo no es equivalente a laoutpalabra clave C # .No, no existe una construcción equivalente que permita pasar una variable no inicializada a un método sin una advertencia, pero, como mencioné en mi pregunta y respuesta, especificar un
<Out()>atributo en unByRefdefinición de parámetro, aunque VB lo ignora, es tratado por C # comooutparámetro.Entonces, preinicializaría las variables de referencia para
Nothingy las especificaría<Out()> ByRefpara indicar la intención (eso funcionará si los usuarios de C # alguna vez acceden a sus métodos).Si cree que sabe cuándo tiene la intención de acceder al valor predeterminado
Nothingen las variables de referencia no asignadas, puede establecer la "Configuración de advertencia" "Uso de la variable antes de la asignación" en "Ninguno" en el nivel del proyecto (Propiedades del proyecto> Compilar, y probablemente desea establecer Configuración en "Todas las configuraciones" antes de cambiar esta configuración), o, en VS2015 (VB.NET 14), puede usar#Disable Warning BC42030.fuente
Versión C #
Versión de vb.net
Encontré la respuesta aquí
Actualizar
Como se indica en el comentario, no olvide inicializar su parámetro que se usará en la ranura de salida
fuente
Tuve el problema en VB.NET que llamé a una función "por ref" que devolvió una matriz.
Aunque el compilador lo marcó como una advertencia, estaba bien. La solución es súper simple y probablemente una buena práctica de programación.
Cambié
a
También ayuda a la hora de codificar si los nombres de las variables son descriptivos ...
fuente
Puede utilizar el método de paso por referencia en VB.NET.
Necesita el mecanismo de parámetro Out en C #, porque no le permite usar ninguna variable sin inicializarla.
VB.NET no necesita una palabra clave especial, ya que lo hace automáticamente por sí mismo.
Solo usa ByRef.
fuente
VB tiene el atributo que debería ser el mismo que C # out, pero hoy todavía recibe una advertencia incluso si lo usa. Hay detalles sobre cómo solucionarlo en el área vblang de github. https://github.com/dotnet/vblang/issues/67 .
fuente
Utilice la palabra clave ByRef antes de la variable.
fuente
ByRefes equivalente a losrefparámetros en C #, que deben inicializarse antes de pasar a una función.