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
Apresentardeve ter um parâmetro opcionalint idade = 0. - O método deve imprimir no formato
Nome: [nome], Idade: [idade]. - No
Main, chameApresentar("Ana")eApresentar("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
- Declaramos o método
Apresentarcom dois parâmetros:string nome(obrigatório) eint idade = 0(opcional). - O valor padrão
0é usado quando a idade não é fornecida na chamada. - Dentro do método, usamos interpolação de strings para montar a mensagem.
- No
Main, chamamosApresentar("Ana")sem a idade; o compilador insere o valor padrão. - Em seguida, chamamos
Apresentar("Carlos", 25)passando a idade explicitamente. - 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