0Pricing
C# Academy · Aula

Funções locais (observação sobre C# 6) e sobrecarga

Sobrecarregue métodos com segurança (mesmo nome, parâmetros diferentes) e, como o C# 6 não tem funções locais, simule-as com pequenos auxiliares privados.

Funções locais (observação sobre C# 6) e sobrecarga é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 3 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

Objetivo: Reutilize um nome de método para tarefas relacionadas (sobrecarga). No C# 6, não há funções locais; use pequenos auxiliares privados.

Noções básicas de sobrecarga

Sobrecargas compartilham um nome, mas diferem nos tipos ou na quantidade de parâmetros. O compilador escolhe a melhor correspondência.

using System;

public static class MathX
{
  public static int Sum(int a, int b) { return a + b; }
  public static double Sum(double a, double b) { return a + b; }
}

public class Program
{
  public static void Main(string[] args)
  {
    Console.WriteLine("Sum ints = " + MathX.Sum(2, 3));
    Console.WriteLine("Sum doubles = " + MathX.Sum(2.5, 3.1));
  }
}

Sobrecargas por aridade

Alterar a aridade (quantidade de parâmetros) cria um conjunto claro de sobrecargas.

using System;

public static class Printer
{
  public static void Print(string text)
  {
    Console.WriteLine(text);
  }

  public static void Print(string text, int times)
  {
    for (int i = 0; i < times; i = i + 1)
    {
      Console.WriteLine(text);
    }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Printer.Print("Hello");
    Printer.Print("Hi", 2);
  }
}

Regra do tipo de retorno

Regra: apenas o tipo de retorno não pode diferenciar sobrecargas. Altere os tipos, a quantidade ou os modificadores dos parâmetros (por exemplo, ref/out) para criar uma sobrecarga válida.

Alternativa às funções locais

Não há funções locais no C# 6: extraia um método pequeno e privado para manter o método principal organizado.

using System;

// No local functions in C# 6: use a tiny private helper inside the class.
public class Report
{
  private static string Header(string title)
  {
    return "-- " + title + " --";
  }

  public static void Print(string title, string body)
  {
    Console.WriteLine(Header(title));
    Console.WriteLine(body);
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Report.Print("Status", "All green");
  }
}

Resolução de sobrecargas

O compilador escolhe a melhor correspondência no conjunto de sobrecargas. Se as chamadas forem ambíguas, adicione uma conversão ou ajuste as assinaturas.

using System;

public static class Formatter
{
  public static string Format(int n) { return "N=" + n; }
  public static string Format(string s) { return "S=" + s; }
}

public class Program
{
  public static void Main(string[] args)
  {
    Console.WriteLine(Formatter.Format(5));       // picks int overload
    Console.WriteLine(Formatter.Format("hello")); // picks string overload

    // Avoid ambiguity: cast when needed
    Console.WriteLine(Formatter.Format((int)3));
  }
}

Regra das sobrecargas

Verificação rápida: Qual afirmação sobre sobrecarga de métodos em C# está correta?

Recapitulação

Recapitulação: Crie conjuntos de sobrecargas alterando os tipos ou a quantidade de parâmetros, não o tipo de retorno. No C# 6, substitua funções locais por pequenos auxiliares privados para manter os métodos organizados.

Perguntas Frequentes

A aula “Funções locais (observação sobre C# 6) e sobrecarga” é grátis?

Sim — o texto completo de “Funções locais (observação sobre C# 6) e sobrecarga” é 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 “Funções locais (observação sobre C# 6) e sobrecarga”?

Sobrecarregue métodos com segurança (mesmo nome, parâmetros diferentes) e, como o C# 6 não tem funções locais, simule-as com pequenos auxiliares privados. 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 3 de 3.

Quanto tempo leva a aula “Funções locais (observação sobre C# 6) e sobrecarga”?

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