0Pricing
C# Academy · Aula

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

Verificação rápida: Qual afirmação sobre ref e out está correta no C# 6?

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

  1. Assinaturas e retornos; com corpo de expressão; opcionais/nomeados; ref/out; sobrecarga
  2. Parâmetros opcionais/nomeados; ref/out/in (noções básicas)
  3. Funções locais (observação sobre C# 6) e sobrecarga
← Voltar para C# Academy