C# Funções Básico
Métodos
Em C#, um método é um bloco de código que executa uma tarefa específica e pode receber dados (parâmetros) e retornar um valor. Métodos permitem organizar o código, evitar repetição e facilitar a manutenção. Eles são declarados dentro de uma classe ou struct, com um modificador de acesso, tipo de retorno, nome e lista de parâmetros.
Os parâmetros podem ser passados por valor (padrão), por referência (ref), somente saída (out) ou somente entrada (in). Parâmetros opcionais e nomeados tornam as chamadas mais flexíveis. Além disso, C# permite sobrecarga de métodos: vários métodos com o mesmo nome, mas listas de parâmetros diferentes.
Neste card, você vai aprender a criar e usar métodos com diferentes tipos de parâmetros, incluindo opcionais e nomeados, e como sobrecarregar métodos para oferecer várias formas de chamar a mesma operação.
Pontos-chave
- Métodos encapsulam lógica e podem receber parâmetros e retornar valores.
refexige variável inicializada;outexige atribuição dentro do método;inpassa por referência somente leitura.- Parâmetros opcionais têm valor padrão e devem vir depois dos obrigatórios.
- Parâmetros nomeados permitem passar argumentos fora de ordem usando
nome: valor. - Sobrecarga permite mesmo nome de método com assinaturas diferentes.
using System;
class Program
{
// Método simples com parâmetros por valor
static int Somar(int a, int b) => a + b;
// Método com parâmetro ref (modifica a variável original)
static void Dobrar(ref int x) => x *= 2;
// Método com parâmetro out (deve atribuir valor)
static bool TentarDividir(int dividendo, int divisor, out int resultado)
{
if (divisor == 0)
{
resultado = 0;
return false;
}
resultado = dividendo / divisor;
return true;
}
// Método com parâmetro opcional e nomeado
static void Saudacao(string nome, string saudacao = "Olá")
=> Console.WriteLine($"{saudacao}, {nome}!");
// Sobrecarga do método Somar
static double Somar(double a, double b) => a + b;
static void Main()
{
Console.WriteLine(Somar(2, 3)); // 5
Console.WriteLine(Somar(2.5, 3.5)); // 6.0 (sobrecarga)
int numero = 10;
Dobrar(ref numero);
Console.WriteLine(numero); // 20
if (TentarDividir(10, 2, out int resultado))
Console.WriteLine($"Divisão: {resultado}"); // 5
Saudacao("Maria"); // Olá, Maria!
Saudacao("João", saudacao: "Bom dia"); // Bom dia, João!
}
}