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.
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.
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.