Article image
Carlos Soares
Carlos Soares21/02/2024 15:51
Compartilhe

Mude sua Percepção Sobre Funções C#, Tornando-as Amigas de nós Desenvolvedores.

  • #C#

Se você está iniciando na programação, com certeza já deve ter se deparado com funções. Algo que a primeira vista parece bem complexo e difícil, mas que porém com o passar do tempo e com os conhecimentos obtidos, você desmistifica e descobre como elas servem para facilitar a vida de nós desenvolvedores. Poupando-nos tempo de reescrita de código, facilitando o desenvolvimento de códigos e aplicativos mais robustos através da reutilização do código.

image

O que são funções?

As funções em termos simples função em C# é um bloco de código que realiza uma tarefa específica. Imagine que você tem uma receita de bolo: ela contém uma série de passos que você segue para criar o bolo. Cada passo na receita é como uma função - cada um faz algo específico, como misturar ingredientes ou assar a massa, sendo que cada um destes itens tem dentro de si várias instruções que juntas formam a função.

Por que usamos funções?

Agora, você pode estar se perguntando: "Por que precisamos de funções se podemos simplesmente escrever todo o código em uma sequência?” A resposta é bem simples:

·        Organização do código: Ao dividir o código em funções, tornamos mais fácil entender e gerenciar o que está acontecendo. É como dividir uma tarefa grande em tarefas menores e mais gerenciáveis, torando-as mais fáceis de desenvolver, dar manutenção e até mesmo entender;

·        Reutilização de código: Se você tem uma tarefa que precisa ser realizada várias vezes em seu programa, você pode escrever uma função para isso e chamá-la sempre que precisar. Isso economiza tempo e evita a repetição de código.

·        Abstração: Funções permitem que você se concentre no que uma parte específica do código faz, sem se preocupar com os detalhes de como ela faz isso. Isso torna o código mais legível e mais fácil de manter.

image

Agora vou desmistificar como usar funções em C#?

Para criar uma função em C#, usamos a seguinte sintaxe:

tipo_retorno NomeDaFuncao(parâmetros) {
  // corpo da função
}

·        tipo_retorno: É o tipo de dado que a função retorna. Pode ser void se a função não retornar nenhum valor, ou pode ser qualquer outro tipo de dado se a função retornar um valor.

·        NomeDaFuncao: É o nome que damos à função. Escolha um nome que descreva o que a função faz;

·        parâmetros: São os valores que a função pode receber para trabalhar. Uma função pode não ter parâmetros, ou pode ter vários;

·        corpo da função: É o bloco de código que contém as instruções que a função executa quando é chamada.

Vamos ver um exemplo simples:

// Definindo uma função que soma dois números inteiros

int Soma(int a, int b) {

  return a + b;

}

.

// Chamando a função e armazenando o resultado em uma variável

int resultado = Soma(3, 5);

Console.WriteLine(resultado); // Isso imprimirá "8"

Neste exemplo, temos uma função chamada Soma que recebe dois parâmetros (a e b) e retorna a soma deles. Quando chamamos a função Soma(3, 5), ela retorna 8, que é armazenado na variável resultado e impresso na tela.

Concluindo, as funções são blocos de construção fundamentais na programação em C# (e em muitas outras linguagens). Elas nos permitem escrever código mais organizado, reutilizável e fácil de entender. Nos passos de sua caminhada como Dev, você encontrará funções em praticamente todos os programas que escrever. Por isso, é importante entender bem esse conceito desde o início. Um bom exemplo para finalizar é uma função que faz a validação de um CPF em um programa de cadastros desenvolvido em C#, conforme o código a seguir, onde no código do programa você apenas invoca a função passando os parâmetros ao invés de escrever todo este código abaixo. Bons estudos a todos!

using System;


class ValidadorCPFCSharp
{
  static void Main(string[] args)
  {
      Console.WriteLine("Digite o CPF a ser validado: ");
      var cpf = Console.ReadLine();


      if (ValidarCPF(cpf))
      {
          Console.WriteLine($"O CPF " + cpf + " é válido!");
      }
      else
      {
          Console.WriteLine($"O CPF " + cpf + " é inválido!");
      }
  }


  public static bool ValidarCPF(string cpf)
  {
      // Verifica se o valor digitado é nulo ou vazio
      if (string.IsNullOrEmpty(cpf))
      return false;


      // Ignora os pontos e traços contidos no cpf digitado
      cpf = cpf.Replace(".", "").Replace("-", "");


      // Verifica se o CPF tem uma quantidade de caracteres diferente de onze
      if (cpf.Length != 11)
      return false;


      // Verifica se todos os caracteres do CPF são dígitos
      if (!cpf.All(char.IsDigit))
      return false;


      // Transforma os valores da variável CPF em um array
      var cpfArray = cpf.ToCharArray();
      
      // Primeira Parte (Primeiro Dígito Verificador)
      var peso = 10;
      var soma = 0;


      for (var i = 0; i < 9; i++)
      soma += (cpfArray[i] - '0') * peso--;
      var resto = soma % 11;


      if (resto < 2)
          resto = 0;
      else
          resto = 11 - resto;


      if ((cpfArray[9] - '0') != resto)
          return false;


      // Segunda Parte (Segundo Dígito Verificador)
      peso = 11;
      soma = 0;


      for (var i = 0; i < 10; i++)
      soma += (cpfArray[i] - '0') * peso--;
      resto = soma % 11;


      if (resto < 2)
          resto = 0;
      else
          resto = 11 - resto;


      if ((cpfArray[10] - '0') != resto)
          return false;


  return true;
  }
}

Segue meu repositório do GitHub onde compartilho diversos códigos em C# e outras tantas linguagens de programação, assim como desafios de códigos e contracapas dos certificados dos bootcamps de forma organizada: https://github.com/Carlos-CGS/ProjetosCSharp.

image

Compartilhe
Comentários (0)