Pasar parámetros (Guía de programación de C#)
En C#, los argumentos se pueden pasar a parámetros por valor o por referencia. El paso de parámetros por referencia permite a los miembros de funciones, métodos, propiedades, indexadores, operadores y constructores cambiar el valor de los parámetros y hacer que ese cambio persista en el entorno de la llamada. Para pasar un parámetro por referencia con la intención de cambiar el valor, use la palabra clave ref o out. Para pasar un parámetro por referencia con la intención de evitar la copia pero no modificar el valor, use el modificador in. En los ejemplos de este tema, para simplificar, solo se usa la palabra clave ref. Para obtener más información sobre la diferencia entre in, ref y out, vea in, ref y out.
En el ejemplo siguiente se muestra la diferencia entre los parámetros de valor y de referencia.
class Program
{
static void Main(string[] args)
{
int arg;
// Passing by value.
// The value of arg in Main is not changed.
arg = 4;
squareVal(arg);
Console.WriteLine(arg);
// Output: 4
// Passing by reference.
// The value of arg in Main is changed.
arg = 4;
squareRef(ref arg);
Console.WriteLine(arg);
// Output: 16
}
static void squareVal(int valParameter)
{
valParameter *= valParameter;
}
// Passing by reference
static void squareRef(ref int refParameter)
{
refParameter *= refParameter;
}
}
Para obtener más información, vea los temas siguientes:
Especificación del lenguaje C#
Para obtener más información, vea la sección Listas de argumentos de Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.