0Pricing
C# Academy · Lección

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

Comprobación rápida: ¿Qué afirmación sobre la sobrecarga de métodos en C# es correcta?

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

  1. Firmas y retornos; métodos con cuerpo de expresión; parámetros opcionales/con nombre; ref/out; sobrecarga
  2. Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)
  3. Funciones locales (nota sobre C# 6) y sobrecarga
← Volver a C# Academy