Saltar al contenido principal
Publicado el

goto y #region/#endregion en C#

Compartir:

Introducción

C# es un lenguaje repleto de características que, cuando se aplican correctamente, pueden hacer que el código sea más claro, organizado y eficiente. En este artículo, exploraremos dos de estas características: la instrucción goto y las directivas #region y #endregion.

goto en C#

La instrucción goto es una herramienta que nos permite cambiar el flujo de ejecución de un programa, dirigiéndolo a un punto específico. Aunque muchos consideran su uso como una mala práctica, hay situaciones en las que puede ser la elección correcta.

Cuándo usar goto:

  • En bloques switch para evitar repeticiones de código.
  • En bucles profundamente anidados donde es necesario salir de un bucle externo desde un bucle interno.

Precauciones con goto:

  • El uso excesivo puede hacer que el código sea difícil de leer y mantener.
  • Puede introducir errores lógicos si no se usa con cuidado.

#region y #endregion en C#

Las directivas #region y #endregion ofrecen una forma de organizar el código en bloques visuales, facilitando la lectura y edición en clases extensas.

Beneficios de usar #region y #endregion

  • Organiza y agrupa funciones o propiedades relacionadas.
  • Ayuda a ocultar detalles de implementación, permitiendo que los desarrolladores se concentren en áreas específicas del código.

Cuándo usar

  • En clases extensas para agrupar métodos relacionados.
  • Para ocultar código de prueba o de depuración que no debe exponerse en el entorno de producción.
#region Bibliotecas
using System;
#endregion

namespace Base {
  class GotoYRegionEndregion {
    #regiontodo Run()
    public void Run() {
      Console.WriteLine($"Resultado del método ProbarGoto(): {ProbarGoto()}");
    }
    #endregion

    #regiontodo ProbarGoto()
    private int ProbarGoto() {
      var numero = 0;

      for (int i = 1; i <= 10; i++) {
        for (int j = i; j <= 10; j++) {
          for (int k = 0; k <= 10; k++) {
            if (j == 5 && k == 5)
              goto PrimerCiclo;
          }

          numero++;
        }

        PrimerCiclo:
          continue;
      }

      return numero;
    }
    #endregion
  }
}

Conclusión

Aunque goto y #region/#endregion puedan tener sus controversias, comprender cuándo y cómo utilizarlos puede ser crucial para crear código C# bien estructurado y eficiente. La clave está en usar estas herramientas con discernimiento y comprender las implicaciones de su uso en el flujo y la legibilidad del código.

Happy coding!