2010-10-29 17 views
12

tenemos este método de llamada:¿Qué significa: = mean en vb.net?

SendAck(AppData:=AppData, Status:=Status, StatusMessage:=StatusMessage, IsApplication:=IsApplication) 

Y aquí es la definición:

Private Sub SendAck(ByVal AppData As XDocument, ByVal Status As Boolean, ByVal StatusMessage As String, ByVal IsApplication As Boolean) 

¿Por qué la llamada tienen los parámetros con el ": =". Tengo curiosidad.

Respuesta

14

El ": =" en VB.Net se utiliza para pasar un argumento de función por nombre. El valor predeterminado es por posición. Permite que los parámetros sean llamados en cualquier orden y determina el posicionamiento basado en el nombre coincide.

Por ejemplo

Sub Example(ByVal param1 as Integer, ByVal param2 As Integer) 
    Console.WriteLine("{0} - {1}", param1, param2) 
End Sub 

Example(param2:=42, param1:=1) ' Prints "1 - 42" 
Example(42, 1)     ' Prints "42 - 1" 
+0

Gotcha. Solo por curiosidad, ¿cuándo querrías hacer esto? Si hace esto para omitir ciertos parámetros, ¿por qué no los haría simplemente opcionales? – Scott

+1

@Scott, mi razón favorita es hacer que los parámetros booleanos sean más legibles. 'GetFiles (true)' es mucho menos legible que 'GetFiles (recurseIntoSubDirectories: = true)' – JaredPar

+0

Muy interesante ... ¡gracias! – Scott

5

que la sintaxis está utilizando argumentos con nombre; Especificando los nombres de los parámetros que se configuran antes del := y luego el valor después. Hacer eso puede permitirle saltar parámetros o hacerlos en diferente orden.

Cuestiones relacionadas