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, indizadores, operadores y constructores cambiar el valor de los parámetros y hacer que ese cambio persista en el entorno que procede de la llamada. Para pasar un parámetro por referencia, utilice una de las palabras clave ref o out. En los ejemplos de este tema, para simplificar, sólo se utiliza la palabra clave ref. Para obtener más información sobre la diferencia entre ref y out, vea ref (Referencia de C#), out (Referencia de C#) y Pasar matrices mediante Ref y Out (Guía de programación de C#).

En el ejemplo siguiente se muestra la diferencia entre valor y parámetros 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, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

Métodos (Guía de programación de C#)

Conceptos

Guía de programación de C#