¿VB.NET tiene un equivalente directo a los out
pará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 Integer
parámetro).ByRef
parámetros. (No sucede con los parámetros de tipo de valor.)Nothing
eliminará la advertencia aunque no cambie el resultado.Nothing
hasta ahora. Simplemente lleva mucho tiempo, ya que tengo que hacerlo cientos de veces en un gran sitio web heredado. Gracias por investigar.Out
atributo no es equivalente a laout
palabra 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 unByRef
definición de parámetro, aunque VB lo ignora, es tratado por C # comoout
parámetro.Entonces, preinicializaría las variables de referencia para
Nothing
y las especificaría<Out()> ByRef
para 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
Nothing
en 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
ByRef
es equivalente a losref
parámetros en C #, que deben inicializarse antes de pasar a una función.