Tipo de retorno de una función variable

12/08/2004 - 07:50 por Marcelo Duarte | Informe spam
Quisiera saber si es posible de alguna forma escribir el
siguiente código ? tal vez con delegados o herencia, pero
no me doy cuenta ...

en lugar de escribir :
Public Class MyBLLClass
Public Function Get_All() as MyClass1

End Function

Public Function Get_All_By_Id() as MyClass1

End Function
End Class

quisiera escribir algo similar a :

Public Class MyBLLClass
Dim TipoFunc as MyClass1
Public Function Get_All() as TipoFunc

End Function

Public Function Get_All_By_Id() as TipoFunc

End Function
End Class

El problema que quiero uniformizar y parametrizarme la
capa de reglas de negocio y en las diferentes clases de
ésta poseo varias funciones practicamente iguales en
funcionalidad pero que únicamente varían en el Tipo de
clase que devuelven.

Me es mas fácil cambiar el tipo de la variable TipoFunc en
lugar de copiar, pegar y modificar manualmente todos los
retornos de las funciones.

No quiero devolver un tipo Object y tener que hacer un
Cast desde donde llamo a la función.

Si alguien me puede guiar o mandar un simple ejemplo les
estoy muy agradecido.

Saludos

Preguntas similare

Leer las respuestas

#1 Federico A. Colli
12/08/2004 - 12:55 | Informe spam
Hola. Sinceramente no se si es posible en VB.NET, pero recuerdo que en C++
si se podía hacer utilizando Templates (plantillas), posiblemente VB.NET ya
venga con algo de sto, pero la verdad hasta ahora no lo he visto.

Saludos
(AUS) Federico A. Colli

"Marcelo Duarte" escribió en el mensaje
news:46d901c48030$4daebfa0$
Quisiera saber si es posible de alguna forma escribir el
siguiente código ? tal vez con delegados o herencia, pero
no me doy cuenta ...

en lugar de escribir :
Public Class MyBLLClass
Public Function Get_All() as MyClass1

End Function

Public Function Get_All_By_Id() as MyClass1

End Function
End Class

quisiera escribir algo similar a :

Public Class MyBLLClass
Dim TipoFunc as MyClass1
Public Function Get_All() as TipoFunc

End Function

Public Function Get_All_By_Id() as TipoFunc

End Function
End Class

El problema que quiero uniformizar y parametrizarme la
capa de reglas de negocio y en las diferentes clases de
ésta poseo varias funciones practicamente iguales en
funcionalidad pero que únicamente varían en el Tipo de
clase que devuelven.

Me es mas fácil cambiar el tipo de la variable TipoFunc en
lugar de copiar, pegar y modificar manualmente todos los
retornos de las funciones.

No quiero devolver un tipo Object y tener que hacer un
Cast desde donde llamo a la función.

Si alguien me puede guiar o mandar un simple ejemplo les
estoy muy agradecido.

Saludos
Respuesta Responder a este mensaje
#2 Tristan
12/08/2004 - 13:22 | Informe spam
Pues no, exactamente así no es posible. Tampoco los
genéricos (templates de C++), que se introducirán en la
próxima versión de .net, te ayudarán demasiado.

Lo que tienes que hacer es definir un interface, o clase
base, que implementen, o de la que hereden todas tus
clases. En esta clase común, puedes definir los miembros
que tengan que ser accesibles desde el exterior. Por
ejemplo:

public MustInherit Class MiBLLBase
Public MustOverride Function Get_All() as MiBLLBase
...
End Class

Public Class MyBLLClass
Inherits MiBLLBase
Public Function Get_All() as MiBLLBase

End Function

Public Function Get_All_By_Id() as MiBLLBase

End Function
End Class
Respuesta Responder a este mensaje
#3 jose vargas
12/08/2004 - 18:41 | Informe spam
Mira:
Creo que lo que quieres hacer es una SOBRECARGA, que la
funcion pueda trabajar con parametros de diferentes tipos.

Si es el caso ve como funciona el MSGBOX, tiene cerca de
12 formas diferentes (parametros de tipos).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida