Uso de funciones.....

03/07/2006 - 22:51 por xavendano | Informe spam
Saludos...

He leido un poco acerca del uso de la instrucción Return como reemplazo en
.NET de lo que anteriormente VB6 se utilizaba en funciones.
En realidad cual es la forma correcta:

Function Logico as Boolean

a-) Logico = True o Logico = False
b-) Return True / Return False


De antemano gracias

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
03/07/2006 - 23:02 | Informe spam
"xavendano" escribió en el mensaje
news:
Saludos...

He leido un poco acerca del uso de la instrucción Return como reemplazo en
.NET de lo que anteriormente VB6 se utilizaba en funciones.
En realidad cual es la forma correcta:

Function Logico as Boolean

a-) Logico = True o Logico = False
b-) Return True / Return False



Hola.

No existe algo como "la forma correcta", ya que ambas instrucciones son
absolutamente equivalentes.

Prefiero la manera "nueva" (me ahorra tener que pensar el nombre de la
función y cuando tengo multiples puntos de salida es mejor escribir Return
False, que Logico = False: Exit Function), pero es cuestión de costumbre (o
de estándares). Cuando comence con VB6 extrañaba el return de "C". Ahora lo
tengo de vuelta, y es una de las cosas que mas me gustan de VB.NET.

Salud!
Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
04/07/2006 - 01:06 | Informe spam
cuando tengo multiples puntos de salida es mejor escribir
Return False, que Logico = False: Exit Function



Ahi diste en el clavo. La principal diferencia es que Return sale de la
funcion y la asignacion en la variable no.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#3 xavendano
04/07/2006 - 15:54 | Informe spam
Gracias por su pronta respuesta amigospero una pregunta adicional

Al usar Return, que pasa con aquellas variables y objetos instanciados que
tienen aun valor..
Asumo que confiar en el recolector de basura y en la destrucción de la
variable al salir de su alcance..




"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> wrote in message
news:
cuando tengo multiples puntos de salida es mejor escribir
Return False, que Logico = False: Exit Function



Ahi diste en el clavo. La principal diferencia es que Return sale de la
funcion y la asignacion en la variable no.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP VB]
04/07/2006 - 17:28 | Informe spam
Al usar Return, que pasa con aquellas variables y objetos
instanciados que tienen aun valor..
Asumo que confiar en el recolector de basura y en la destrucción de la
variable al salir de su alcance..



No tiene diferencia a cuando se sale de la funcion por un End Function. Como
cualquier otra salida de funcion, las variables locales quedan fueda del
ambito y se eliminan, liberando cualquier referencia que ellas contengan.
Pero eso no implica la destruccion instantanea de objetos ni llamadas a
Dispose. Si tienes algun objeto que necesites cerrar o llamar a Dispose usa
un bloque Try/Catch/Finally (o Try/Finally si no te interesa manejar el
error):

Try

'

Return valor

Finally

obj.Dispose()

End Try

Si estas usando la version 2005 tambien puedes usar Using (que despues de
todo termina convertido en un bloque Try/Finally).

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#5 Carlos Gómez
04/07/2006 - 19:32 | Informe spam
Estoy de acuerdo en cuanto a que las formas (Logico = True ó Return
True) son equivalentes funcionalmente, y como bien comentais, con
Return se ahorra hacer un Exit Function.

Pero no estoy para nada de acuerdo en hacer uso de código espaguetti
(multiples salidas de un procedimiento, o una función o, en cualquier
caso, un fragmento de código).
Desde mi punto de vista, hacer uso de Return en medio de un
procedimiento (o un Exit Sub, Exit Function, Exit For,...) es
exactamente igual que usar GOTO, -que tanta controversia ha creado y
seguirá creando-.

Yo soy partidario hacer uso de GOTO, Return, Exit LoQueSea, siempre y
cuando el código quede más claro que realizar un gigantesco IF
anidado, en el resto de los casos no me parece buena práctica de
programación porque aunque es más rápido de escribirse, es más
difícil de depurar.


Desde Aguadulce, España

Carlos Gómez
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida