Voy a estar en desacuerdo con todos ustedes jóvenes traficantes en este.
Utilizar el retorno en medio de un método, vacío o no, es una práctica muy mala, por razones que fueron claramente definidas, hace casi cuarenta años, por el difunto Edsger W. Dijkstra, comenzando en el conocido " Declaración de GOTO considerada dañina ", y continúa en" Programación estructurada ", por Dahl, Dijkstra y Hoare.
La regla básica es que cada estructura de control y cada módulo deben tener exactamente una entrada y una salida. Un retorno explícito en el medio del módulo rompe esa regla, y hace que sea mucho más difícil razonar sobre el estado del programa, lo que a su vez hace que sea mucho más difícil decir si el programa es correcto o no (que es una propiedad mucho más fuerte). que "si parece funcionar o no").
"La declaración GOTO considerada dañina" y la "Programación estructurada" iniciaron la revolución de la "Programación estructurada" de los años setenta.Esas dos piezas son las razones por las que tenemos if-then-else, while-do y otras construcciones de control explícitas hoy en día, y por qué las declaraciones GOTO en lenguajes de alto nivel se encuentran en la lista de especies en peligro de extinción. (Mi opinión personal es que necesitan estar en la lista de Extinct Species.)
Vale la pena señalar que el modulador de flujo de mensajes, la primera pieza de software militar que alguna vez aprobó las pruebas de aceptación en el primer intento, sin desviaciones , renuncias, o "sí, pero" verborrea, se escribió en un lenguaje que ni siquiera tenía una declaración GOTO.
También vale la pena mencionar que Nicklaus Wirth cambió la semántica de la declaración RETURN en Oberon-07, la última versión del lenguaje de programación Oberon, convirtiéndolo en una pieza final de la declaración de un procedimiento escrito (es decir, función) , en lugar de una declaración ejecutable en el cuerpo de la función. Su explicación del cambio dijo que lo hizo precisamente porque la forma anterior FUE una violación del principio de una salida de la Programación Estructurada.
¿Qué pasa: DoThis void() {if (isValid) DoThat(); } – Dscoduc
imagina el código? ¿Por qué? ¡Está justo ahí! :-D – STW
Esta es una buena pregunta, siempre pienso que es una buena práctica usar el retorno; para salir del método o función. Especialmente en un método de minería de datos LINQ con múltiples resultados IQueryable y todos ellos dependen el uno del otro. Si alguno de ellos no tiene resultado, alerta y sal. –
Cheung