0Pricing
C# Academy · Lección

Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)

Use parámetros opcionales y argumentos con nombre para aportar claridad; pase por referencia con ref; devuelva valores adicionales con out; tenga en cuenta que los parámetros in no están disponibles en C# 6.

Parámetros opcionales/con nombre; ref/out/in (conceptos básicos) es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 2 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 de la lección

Objetivo: Use parámetros opcionales y argumentos con nombre para mejorar la legibilidad; comprenda ref y out. Nota: los parámetros in no están disponibles en C# 6.

Parámetros opcionales

Añada valores predeterminados para una personalización sencilla sin crear muchas 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 con nombre

Los argumentos con nombre hacen que las llamadas se documenten por sí mismas y permiten reordenarlas de forma 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 pasa una variable por referencia; quien realiza la llamada debe inicializarla primero.

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 un método devuelva valores adicionales mediante parámetros; el método debe asignarles un valor.

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);
  }
}

Acerca de "in" (C# 6)

Nota: los parámetros in (solo lectura por referencia) llegaron en versiones posteriores de C#. En C# 6 puede:

  • Pasar por valor (copia) los tipos pequeños
  • Usar ref solo cuando sea necesaria la modificación
  • Hacer que los parámetros de los métodos sean readonly por convención (no reasignarlos)

Conceptos básicos de ref y out

Comprobación rápida: ¿Qué afirmación sobre ref y out es correcta en C# 6?

Repaso

Repaso: Use parámetros opcionales para los valores predeterminados, argumentos con nombre para mejorar la claridad, ref para modificar los datos de quien realiza la llamada y out para devolver valores adicionales. C# 6 no admite parámetros in.

Preguntas frecuentes

¿La lección «Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)» es gratis?

Sí — el texto completo de «Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)» 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 «Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)»?

Use parámetros opcionales y argumentos con nombre para aportar claridad; pase por referencia con ref; devuelva valores adicionales con out; tenga en cuenta que los parámetros in no están disponibles… 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 2 de 3.

¿Cuánto tiempo toma la lección «Parámetros opcionales/con nombre; ref/out/in (conceptos básicos)»?

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