Parâmetros opcionais/nomeados; ref/out/in (noções básicas)
Use parâmetros opcionais e argumentos nomeados para obter clareza; passe por referência com ref; retorne valores adicionais com out; observe que parâmetros in não estão disponíveis no C# 6.
Parâmetros opcionais/nomeados; ref/out/in (noções básicas) é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 3 aulas no total.
Visão geral da lição
Objetivo: Use parâmetros opcionais e argumentos nomeados para melhorar a legibilidade; entenda ref e out. Observação: parâmetros in não estão disponíveis no C# 6.
Parâmetros opcionais
Adicione valores padrão para permitir uma personalização simples sem muitas sobrecargas.
using System;
public static class Notifier
{
// Optional parameter: suffix has a default value
public static void Notify(string message, string suffix = "!")
{
Console.WriteLine(message + suffix);
}
}
public class Program
{
public static void Main(string[] args)
{
Notifier.Notify("Saved"); // uses "!"
Notifier.Notify("Warning", "!!"); // overrides default
}
}
Argumentos nomeados
Argumentos nomeados tornam as chamadas autoexplicativas e permitem uma reordenação segura.
using System;
public static class Greeter
{
public static void Greet(string name, string prefix, int repeat)
{
for (int i = 0; i < repeat; i = i + 1)
{
Console.WriteLine(prefix + " " + name);
}
}
}
public class Program
{
public static void Main(string[] args)
{
// Named args improve readability and allow reordering at call site
Greeter.Greet(name: "Ada", prefix: "Hello", repeat: 2);
Greeter.Greet(repeat: 1, name: "Alan", prefix: "Hi");
}
}
Parâmetro ref
ref passa uma variável por referência; quem chama deve inicializá-la primeiro.
using System;
public static class RefDemo
{
public static void Increment(ref int n)
{
n = n + 1; // modifies caller's variable
}
}
public class Program
{
public static void Main(string[] args)
{
int value = 5; // must be assigned before passing by ref
RefDemo.Increment(ref value);
Console.WriteLine("value = " + value); // 6
}
}
Parâmetro out
out permite que um método retorne valores adicionais por meio de parâmetros; o método deve atribuí-los.
using System;
public static class OutDemo
{
public static bool TryDivide(int a, int b, out int result)
{
if (b == 0)
{
result = 0; // out must be assigned before return
return false;
}
result = a / b;
return true;
}
}
public class Program
{
public static void Main(string[] args)
{
int r; // not required to be assigned before passing as out
bool ok = OutDemo.TryDivide(9, 0, out r);
Console.WriteLine("ok=" + ok + " r=" + r);
}
}
Sobre "in" (C# 6)
Observação: parâmetros in (somente leitura por referência) surgiram em versões posteriores do C#. No C# 6, você pode:
- Passar por valor (cópia) para tipos pequenos
- Usar ref apenas quando for necessária uma alteração
- Tornar os parâmetros do método somente leitura por convenção (não os reatribua)
Noções básicas de ref e out
Recapitulação
Recapitulação: Use parâmetros opcionais para valores padrão, argumentos nomeados para obter clareza, ref para alterar os dados de quem chama e out para retornar valores adicionais. O C# 6 não oferece suporte a parâmetros in.
Perguntas Frequentes
A aula “Parâmetros opcionais/nomeados; ref/out/in (noções básicas)” é grátis?
Sim — o texto completo de “Parâmetros opcionais/nomeados; ref/out/in (noções básicas)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 3 aulas no total.
O que vou aprender em “Parâmetros opcionais/nomeados; ref/out/in (noções básicas)”?
Use parâmetros opcionais e argumentos nomeados para obter clareza; passe por referência com ref; retorne valores adicionais com out; observe que parâmetros in não estão disponíveis no C# 6. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Parâmetros opcionais/nomeados; ref/out/in (noções básicas)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Assinaturas e retornos; com corpo de expressão; opcionais/nomeados; ref/out; sobrecarga
- Parâmetros opcionais/nomeados; ref/out/in (noções básicas)
- Funções locais (observação sobre C# 6) e sobrecarga