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
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
- 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