Funciones locales (nota sobre C# 6) y sobrecarga
Sobrecargue métodos de forma segura (mismo nombre, parámetros distintos) y, dado que C# 6 no tiene funciones locales, emúlelas con pequeños helpers privados.
Funciones locales (nota sobre C# 6) y sobrecarga es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 3 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 3 lecciones en total.
Descripción general
Objetivo: Reutilizar un mismo nombre de método para trabajos relacionados (sobrecarga). En C# 6 no hay funciones locales; use pequeños métodos auxiliares privados en su lugar.
Conceptos básicos de la sobrecarga
Las sobrecargas comparten un nombre, pero se diferencian por los tipos o la cantidad de parámetros. El compilador elige la coincidencia más adecuada.
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 aridad
Cambiar la aridad (el número de parámetros) crea un 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);
}
}
Regla del tipo de retorno
Regla: El tipo de retorno por sí solo no puede diferenciar las sobrecargas. Cambie los tipos, la cantidad o los modificadores de los parámetros (por ejemplo, ref/out) para crear una sobrecarga válida.
Alternativa a las funciones locales
En C# 6 no hay funciones locales: extraiga un pequeño método privado para mantener ordenado el método principal.
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");
}
}
Resolución de sobrecargas
El compilador elige la coincidencia más adecuada del conjunto de sobrecargas. Si las llamadas son ambiguas, añada una conversión o ajuste las firmas.
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));
}
}
Regla de la sobrecarga
Repaso
Repaso: Cree conjuntos de sobrecargas cambiando los tipos o la cantidad de parámetros, no el tipo de retorno. En C# 6, sustituya las funciones locales por pequeños métodos auxiliares privados para mantener los métodos limpios.
Preguntas frecuentes
¿La lección «Funciones locales (nota sobre C# 6) y sobrecarga» es gratis?
Sí — el texto completo de «Funciones locales (nota sobre C# 6) y sobrecarga» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Funciones locales (nota sobre C# 6) y sobrecarga»?
Sobrecargue métodos de forma segura (mismo nombre, parámetros distintos) y, dado que C# 6 no tiene funciones locales, emúlelas con pequeños helpers privados. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C# Academy?
No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 3.
¿Cuánto tiempo toma la lección «Funciones locales (nota sobre C# 6) y sobrecarga»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C# Academy?
Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Firmas y retornos; métodos con cuerpo de expresión; parámetros opcionales/con nombre; ref/out; sobrecarga
- Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)
- Funciones locales (nota sobre C# 6) y sobrecarga