Publicado em

goto e #region/#endregion em C#

Partilhar:

Introdução

O C# é uma linguagem repleta de características que, quando bem aplicadas, podem tornar o código mais claro, organizado e eficiente. Neste artigo, vamos explorar duas destas características: a instrução goto e as diretivas #region e #endregion.

goto em C#

A instrução goto é uma ferramenta que nos permite alterar o fluxo de execução de um programa, direcionando-o para um ponto específico. Embora muitos considerem seu uso como uma má prática, existem situações onde pode ser a escolha certa.

Quando usar o goto:

  • Em blocos de switch para evitar repetições de código.
  • Em loops profundamente aninhados onde o encerramento de um loop externo é necessário a partir de um loop interno.

Cuidados com o goto:

  • O uso excessivo pode tornar o código difícil de ler e manter.
  • Pode introduzir erros lógicos se não for usado com cuidado.

#region e #endregion em C#

As diretivas #region e #endregion oferecem uma maneira de organizar o código em blocos visuais, facilitando a leitura e a edição em classes extensas.

Benefícios de usar #region e #endregion

  • Organiza e agrupa funções ou propriedades relacionadas.
  • Ajuda a esconder detalhes de implementação, permitindo que os desenvolvedores se concentrem em áreas específicas do código.

Quando usar

  • Em classes extensas para agrupar métodos relacionados.
  • Para esconder código de teste ou de depuração que não deve ser exposto no ambiente de produção.
#region Bibliotecas
using System;
#endregion

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

    #regiontodo TestarGoto()
    private int TestarGoto() {
      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 PrimeiroCiclo;
          }

          numero++;
        }

        PrimeiroCiclo:
          continue;
      }

      return numero;
    }
    #endregion
  }
}

Conclusão

Embora goto e #region/#endregion possam ter suas controvérsias, compreender quando e como utilizá-los pode ser crucial para criar um código C# bem estruturado e eficiente. A chave está em usar estas ferramentas com discernimento e compreender as implicações do seu uso no fluxo e na legibilidade do código.

Happy coding!