2008-11-19 15 views
11

que ver esto de vez en cuando y quieren saber de qué se trata. Probé con Google, pero está filtrando los caracteres de la búsqueda. Tengo algunos libros que tampoco lo hacen referencia.¿Qué es el operador ": =" en (VB) .NET o para qué sirve?

Fwiw, recuerdo en Pascal que era el operador de asignación.

Puede alguien que me señale el MSDN o página similar?

+0

que era sólo una pregunta fácil ... – alamodey

Respuesta

27

Puede utilizar el: = sintaxis para asignar los parámetros a un Sub o función por su nombre, y no estrictamente por la posición. Por ejemplo:

Public Class Form1 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     TestRoutine(Y:="TestString", X:=12) 
    End Sub 

    Private Sub TestRoutine(ByVal X As Long, Optional Y As String = "") 
     ' Do something with X and Y here... ' 
    End Sub 

End Class 

Nota que TestRoutine especifica X como primer parámetro, e Y como el segundo, pero la llamada en Form1_Load los tiene en el orden opuesto, nombrando cada parámetro con el operador: =.

Aquí hay un enlace a un artículo de MSDN sobre el tema:

http://msdn.microsoft.com/en-us/library/51wfzyw0.aspx

no veo este utiliza muy a menudo, excepto en macros VBA generados por grabador de macros de Excel, que lo utiliza una lote.

+0

¡Una respuesta mucho mejor que la mía! –

+0

Wow - Desearía haberlo sabido hace dos meses. Eso es espectacular. Creo que algunas refactorizaciones están en mi futuro ... –

+2

También es extremadamente útil para decir qué significa un argumento booleano en particular. useStyle: = True es mucho más claro para el lector que True True. –

11

Es realmente útil cuando hay múltiples parámetros opcionales: se ve mucho en el código que llama a los modelos de objetos de oficina: Word, Excel, etc. Cuando tiene 40 parámetros, 37 de ellos son opcionales y desea establecerlos Los valores para los parámetros 34 y 40, es mucho más clara de usar: = a que tienen una llamada de función (que se parece a "nuevos", "configuración", 1, ,,,,,,,,,,,,, ,,,,,,,,,,,,,,, 43,, 2 ,,,,, 7)

Quería hacerle un comentario a JeffK, pero no tengo suficientes representantes.

+0

Eso es puro horror, ¿alguna vez viste código así? Dios bendiga las fuentes monoespaciadas cuando tienes que contar comas. –

+0

@Camilo oh sí, si se intenta programar Oficina en C#, que terminan haciendo ese tipo de cosas mucho - incluso algo tan sencillo como Documents.New(), porque de todos los parámetros opcionales. –

+0

Entonces ... C# no tiene equivalente del ": =" de VB? : conmocionado: –