Procedimientos con Parametros opcionales

28/03/2006 - 04:32 por zantos | Informe spam
hola, alguien sabe como crear procedimientos y pasarle parametros que pueden
o no estar, es decir, opcionales. por ej...

Private Sub Agregar(ByRef Lista as ListView, ByVal Item1 as String [, ByVal
Item2 as String, ByVal Item3 as String,])

En este caso quisiera que Item1 e Item2 (Los que se encuentran entre
corchetes) se puedan o no pasar cuando lo llamo, es decir que me permita
hacer esto...
Call Agregar(lstPersonas, Nombre)

...y al mismo tiempo esto...
Call Agregar(lstPersonas, Nombre, Apellido, Edad)

Esto es porque estoy haciendo un procedimiento que me agregue los valores
directamente al listview para no tener que escribir el código siempre...
Bueno muchísimas gracias de antemano.
santi

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
28/03/2006 - 05:40 | Informe spam
Los parametros opcionales se definen con el modificador Optional y se pueden
definir solo si defines un valor por defecto para ellos. Ademas, no
necesitas pasar ByRef el ListView.

Private Sub Agregar(ByVal Lista As ListView, ByVal Item1 As String, _
Optional ByVal Item2 As String = Nothing, _
Optional ByVal Item3 As String = Nothing)

Aunque se pueden declarar los parametros opcionales estos no son compatibles
con todos los lenguajes de .NET asi que si se lo va a hacer en un componente
es mejor usar sobrecargas que parametros opcionales.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#2 Leonardo Azpurua [mvp vb]
28/03/2006 - 05:48 | Informe spam
"zantos" escribió en el mensaje
news:
hola, alguien sabe como crear procedimientos y pasarle parametros que
pueden
o no estar, es decir, opcionales. por ej...

Private Sub Agregar(ByRef Lista as ListView, ByVal Item1 as String [,
ByVal
Item2 as String, ByVal Item3 as String,])

En este caso quisiera que Item1 e Item2 (Los que se encuentran entre
corchetes) se puedan o no pasar cuando lo llamo, es decir que me permita
hacer esto...
Call Agregar(lstPersonas, Nombre)

...y al mismo tiempo esto...
Call Agregar(lstPersonas, Nombre, Apellido, Edad)

Esto es porque estoy haciendo un procedimiento que me agregue los valores
directamente al listview para no tener que escribir el código siempre...
Bueno muchísimas gracias de antemano.
santi



Hola, Santi:

Tienes dos metodos:

1) El metodo "tradicional" de VB (usando parametros opcionales):

Public Sub Agregar(ByRef Lista As ListView, ByVal Item1 As String, _
Optional ByVal Item2 As String = "", _
Optional ByVal Item2 As String = "")

Que tiene la ventaja de que es simple, pero el inconveniente de que no
cumple las especificaciones del CLR (y en consecuencia la funcion no puede
llamarse desde otros lenguajes).

2) La "sobrecarga" de la funcion:

Public Sub Agregar(ByRef Lista As ListView, ByVal Item1 As String, ByVal
Item2 As String, ByVal Item3 As String)
...
End Sub

y

Public Sub Agregar(ByRef Lista As ListView, ByVal Item1 As String)
...
End Sub

Que es compatible con las especificaciones y te permite un codigo
ligeramente mas ordenado (reduces la cantidad de Ifs, lo cual es
beneficioso).

Salud!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida