Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 13 Enero 2013, 18:10 PM

Título: [SOLUCIONADO] Pequeña duda sobre argumentos
Publicado por: Eleкtro en 13 Enero 2013, 18:10 PM
¿Se puede definir más de un tipo por Valor/Referencia por argumento?

Necesito hacer algo así:
Public Function blablabla(ByRef Image_File As String or As Bitmap)

O en su defecto:
Public Function blablabla(ByRef Image_File As "Cualquier tipo que séa aceptable")
If Image_File = Ctype(string) then...
if Image_File = Ctype(Bitmap) then...
Título: Re: Pequeña duda sobre argumentos
Publicado por: Novlucker en 13 Enero 2013, 18:15 PM
Todos los tipos de objetos deberían de implementar la misma interfaz o heredar de la misma base (nada de lo que pones como ejemplo), de lo contrario, para eso se utilizan las sobrecargas :P

Podrías pasar un object, pero no es para nada recomendable, donde vea que comienzas a hacer eso te baneo :xD, en un rato me paso por tu post de snippets para darte unas sugerencias en cuanto a estructura de código :)

Saludos


Título: Re: Pequeña duda sobre argumentos
Publicado por: Eleкtro en 13 Enero 2013, 18:20 PM
Cita de: Novlucker en 13 Enero 2013, 18:15 PM
Podrías pasar un object, pero no es para nada recomendable, donde vea que comienzas a hacer eso te baneo :xD)

Pero digo yo que no seré el primero en tener este problemilla xD... ¿Como lo solucionarías tú?  :-[

Que pocas soluciones hay entonces.

PD: gracias!

EDITO:
Citaren un rato me paso por tu post de snippets para darte unas sugerencias en cuanto a estructura de código :)
perfecto!
Título: Re: Pequeña duda sobre argumentos
Publicado por: Novlucker en 13 Enero 2013, 19:20 PM
Otra alternativa es utilizar generics, pero tampoco aplica para el caso, si vas a utilizar generics no deberías de estar verificando el tipo luego.

Cita de: EleKtro H@cker en 13 Enero 2013, 18:20 PM
Pero digo yo que no seré el primero en tener este problemilla xD... ¿Como lo solucionarías tú? :-[

Con sobrecargas, tendría dos métodos :P

Saludos
Título: Re: Pequeña duda sobre argumentos
Publicado por: Eleкtro en 17 Enero 2013, 19:59 PM
Cita de: Novlucker en 13 Enero 2013, 19:20 PMCon sobrecargas, tendría dos métodos :P

¿Me puedes indicar el nombre del término en inglés para buscar información?

Me dices sobrecarga y me quedo igual, no consigo asociarlo a nada... sobrecargar un sub/función, ¿eso que leches es? xD.
Título: Re: Pequeña duda sobre argumentos
Publicado por: Novlucker en 17 Enero 2013, 20:05 PM
Overload

Sobrecargar métodos es tener un método que se llame igual, pero que acepte diferentes parámetros.
Código (vbnet) [Seleccionar]
Function GetWord() As String
Function GetWord(ByVal Position As Integer) As String
Function GetWord(ByVal Search As String) As String

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

Saludos
Título: Re: Pequeña duda sobre argumentos
Publicado por: Eleкtro en 17 Enero 2013, 20:23 PM
Gracias.

Y el própio intérprete sabe que función debe usar según el tipo de valor con el que lo llames independientemente del nombre, QUE BUENO!

Pero yo (que soy muy retorcido y me gusta experimentar situaciones xD), he intentado exprimir el ejemplo de esta manera para ver que pasaba:

Código (vbnet) [Seleccionar]
   Function Test(ByVal arg1 As Integer, _
   Optional arg2 As Integer = Nothing)
       MsgBox("A" & arg1)
   End Function


   Function Test(ByVal arg1 As Integer, _
   Optional arg2 As String = Nothing)
       MsgBox("B" & arg1)
   End Function

   Test(3)


Y no funciona,

¿Si el único parámetro de entrada que cambia es opcional, se puede sobrecargar de alguna manera?
Título: Re: Pequeña duda sobre argumentos
Publicado por: Novlucker en 17 Enero 2013, 20:31 PM
¿Creas 3 sobrecargas? :P
Código (vbnet) [Seleccionar]
Function Test(ByVal arg1 As Integer)

Function Test(ByVal arg1 As Integer, _
    arg2 As Integer)

Function Test(ByVal arg1 As Integer, _
    arg2 As String)


Saludos
Título: Re: Pequeña duda sobre argumentos
Publicado por: Eleкtro en 17 Enero 2013, 20:47 PM
'¬¬

I'm stupid.

xD

Saludos.
Título: Re: [SOLUCIONADO] Pequeña duda sobre argumentos
Publicado por: $Edu$ en 17 Enero 2013, 20:55 PM
Buscate en google las reglas de overloads, ya que en el caso ese que dejaste por ejemplo, que solo se diferencia con un argumento opcional, no se puede, y asi con otras cosas tampoco, por eso te podrias mirar algo para tenerlo en cuenta.

Aprendes rapido Elektro! saludos!