Da trilha de C# Este conceito ainda não saiu como card do dia. ir para o card de hoje

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.
  • ref exige variável inicializada; out exige atribuição dentro do método; in passa 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.
MetodosDemo.cs
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!
    }
}

Exercícios

  1. 1
    Fácil

    Método com parâmetro opcional

    Crie um método chamado Apresentar que recebe um nome (obrigatório) e uma idade (opcional, padrão 0). O método deve imprimir "Nome: [nome], Idade: [idade]". No Main, chame o método uma vez sem a idade e outra com a idade.

    Resolver
  2. 2
    Médio

    Método com `out` e sobrecarga

    Crie um método Calcular sobrecarregado: uma versão recebe dois int e retorna a soma; outra recebe dois double e retorna a média. Além disso, crie um método TentarConverter que recebe uma string e usa out int para retornar se a conversão foi bem-sucedida e o valor convertido. No Main, teste as sobrecargas e o out.

    Resolver
  3. 3
    Desafio

    Métodos com `ref`, `in` e parâmetros nomeados

    Crie uma classe Calculadora com:

    • Um método Incrementar que recebe um int por ref e o incrementa em 1.
    • Um método CalcularArea que recebe um double por in (raio) e retorna a área do círculo (π * raio²).
    • Um método Formatar que recebe um número double, um número de casas decimais (opcional, padrão 2) e um prefixo (opcional, padrão "R$"). Use parâmetros nomeados na chamada. No Main, demonstre o uso de ref, in e parâmetros nomeados.

    Resolver

Continue estudando