Fácil C#

Método com parâmetro opcional

Enunciado

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.

Requisitos

  • O método Apresentar deve ter um parâmetro opcional int idade = 0.
  • O método deve imprimir no formato Nome: [nome], Idade: [idade].
  • No Main, chame Apresentar("Ana") e Apresentar("Carlos", 25).

Código inicial

using System;

class Program
{
    // TODO: declarar o método Apresentar

    static void Main()
    {
        // TODO: chamar Apresentar com e sem idade
    }
}

Saída esperada

Nome: Ana, Idade: 0
Nome: Carlos, Idade: 25
Ver dica

Use string nome, int idade = 0 na assinatura do método. A impressão pode ser feita com Console.WriteLine.

Mostrar solução
using System;

class Program
{
    // Método com parâmetro opcional (idade padrão 0)
    static void Apresentar(string nome, int idade = 0)
    {
        Console.WriteLine($"Nome: {nome}, Idade: {idade}");
    }

    static void Main()
    {
        Apresentar("Ana");          // usa o valor padrão 0
        Apresentar("Carlos", 25);   // passa a idade explicitamente
    }
}

Passo a passo

  1. Declaramos o método Apresentar com dois parâmetros: string nome (obrigatório) e int idade = 0 (opcional).
  2. O valor padrão 0 é usado quando a idade não é fornecida na chamada.
  3. Dentro do método, usamos interpolação de strings para montar a mensagem.
  4. No Main, chamamos Apresentar("Ana") sem a idade; o compilador insere o valor padrão.
  5. Em seguida, chamamos Apresentar("Carlos", 25) passando a idade explicitamente.
  6. O programa exibe as duas linhas na saída padrão.

Por que funciona

O parâmetro opcional permite que o mesmo método seja chamado com menos argumentos. O compilador preenche os argumentos faltantes com os valores padrão definidos na assinatura. Isso torna a chamada mais flexível e reduz a necessidade de sobrecargas.

Erros comuns

  • Esquecer o valor padrão: static void Apresentar(string nome, int idade) não compila se chamado sem idade. O correto é int idade = 0.
  • Parâmetro opcional antes do obrigatório: static void Apresentar(int idade = 0, string nome) gera erro CS1737. Parâmetros opcionais devem vir depois dos obrigatórios.
  • Confundir opcional com params: params é para número variável de argumentos; opcional é para argumentos ausentes com valor padrão.

Outra forma de resolver

Se quiser permitir qualquer idade, inclusive nula, use int? idade = null e trate com idade ?? 0. Mas para este exercício, o valor padrão 0 é suficiente.

Saída esperada

Nome: Ana, Idade: 0
Nome: Carlos, Idade: 25