Módulo 01 — Fundamentos da Plataforma e da Linguagem
Métodos e parâmetros
iniciante 25 min de leitura·Atualizado · .NET 9
ResumoMétodos encapsulam comportamento reutilizável. Eles recebem parâmetros, retornam valores e podem ter sobrecargas, parâmetros opcionais e nomeados.
1. Objetivos de Aprendizagem#
- Declarar métodos com parâmetros e retorno.
- Usar parâmetros opcionais, nomeados e
out. - Entender sobrecarga (overload) e corpos de expressão.
2. Pré-requisitos#
- Controle de fluxo (tópico 3.2).
3. Conceito#
Um método tem assinatura: modificadores + tipo de retorno + nome + parâmetros. O porquê: dar nome a um comportamento, evitar repetição e testar unidades pequenas.
Recursos úteis:
- Parâmetros opcionais: valor padrão na assinatura.
- Argumentos nomeados:
metodo(preco: 10)melhora legibilidade. out/ref: retornar múltiplos valores ou passar por referência.- Sobrecarga: mesmo nome, assinaturas diferentes.
- Expression-bodied:
=>para métodos de uma linha.
4. Mão na Massa#
4.1. Setup#
Shell
dotnet new console -n Catalog.Metodos
cd Catalog.Metodos
4.2. Implementação Passo a Passo#
- Método simples e expression-bodied:
C#
decimal ComImposto(decimal valor, decimal aliquota = 0.1m)
=> valor + (valor * aliquota);
Console.WriteLine(ComImposto(100m)); // 110
Console.WriteLine(ComImposto(100m, 0.2m)); // 120
Console.WriteLine(ComImposto(valor: 50m)); // argumento nomeado
- Sobrecarga:
C#
string Formatar(int n) => $"inteiro: {n}";
string Formatar(decimal n) => $"decimal: {n:C}";
outpara múltiplos retornos:
C#
bool TentarDividir(int a, int b, out int resultado)
{
if (b == 0) { resultado = 0; return false; }
resultado = a / b;
return true;
}
if (TentarDividir(10, 2, out int r))
Console.WriteLine(r); // 5
4.3. Executando#
Shell
dotnet run
5. Exemplo Completo#
C#
decimal PrecoFinal(decimal preco, decimal desconto = 0m, decimal imposto = 0.1m)
=> (preco - desconto) * (1 + imposto);
Console.WriteLine(PrecoFinal(200m, desconto: 20m)); // usa imposto padrão
6. Boas Práticas e Armadilhas#
| Faça | Evite |
|---|---|
| Métodos curtos, com um propósito claro | Métodos gigantes que fazem "tudo" |
| Argumentos nomeados para clareza em chamadas ambíguas | Longas listas de bool posicionais |
Usar o padrão Try...(out ...) para operações que podem falhar | Abusar de ref/out sem necessidade |
Atençãoparâmetros opcionais são resolvidos em tempo de compilação. Mudar um valor padrão em uma biblioteca não afeta chamadores já compilados até que eles recompilem.
7. Segurança e Produção#
- Métodos pequenos e nomeados são mais fáceis de testar e revisar — base para código sustentável.
8. Exercícios#
- Fácil: escreva um método que retorne o maior de dois números.
- Médio: crie duas sobrecargas de um método
Descrever. - Desafio: implemente
TryParsePreco(string, out decimal)que valida um preço.
9. Resumo#
Métodos encapsulam comportamento com parâmetros e retorno; use opcionais/nomeados para clareza, out para múltiplos retornos e sobrecarga para variações. Prefira métodos curtos.
10. Próximos Passos#
Encerramos a sintaxe base. A seguir, a distinção fundamental entre value e reference types.
11. Referências#
- Microsoft Learn — Métodos
- Microsoft Learn — Argumentos nomeados e opcionais
- Microsoft Learn — Modificador out de parâmetros
Terminou esta aula?
Marque como concluída para acompanhar seu progresso.