Diferencia entre el parámetro ref y out en c #

Ref (Referencia) Parámetro
El parámetro "ref" se usa para pasar el valor por referencia desde el parámetro real al parámetro formal, es decir, desde el método del destinatario al método llamado. En C #, un parámetro declarado con un modificador "ref" es un parámetro de referencia. Cuando pasa parámetros por referencia, a diferencia de los parámetros de valor, no se crea una nueva ubicación para este parámetro. Cualquier cambio realizado en el parámetro formal se reflejará en el parámetro real.

Ejemplo de parámetro ref.

1234567 Incremento de vacío (ref int m) m = m + 100; // el valor de n cambiará ..... int n = 50; Incremento (ref n);

Como se muestra en el fragmento de programa anterior, cualquier cambio realizado en m se reflejará en n, ya que el parámetro se pasa por referencia.

Parámetro de salida (salida)
El parámetro de salida se utiliza para devolver el resultado a la función de llamada. La palabra clave 'out' se utiliza para declarar el parámetro como un parámetro de salida. Similar a un parámetro de referencia, un parámetro de salida no crea una nueva ubicación de almacenamiento. En su lugar, se convierte en un alias para el parámetro en el método de llamada.

Ejemplo de parámetro de salida

12345678910111213 usando Sistema; clase MyOutput static void Square (int p, out int q) q = p * p; public static void main () int x; Square (5, out x); Console.WriteLine ("Square of un no. es: "+ x);

En el programa anterior, x se declara como un parámetro de salida en la función de llamada y, como puede ver, x no se ha inicializado. Cuando la función Cuadrada termina, el valor de q se copiará al parámetro de salida x.

Diferencia entre el parámetro ref y out en C #

  1. En el parámetro de referencia, los cambios realizados en el parámetro formal se reflejan en el parámetro real, mientras que en el parámetro out, el valor se refleja nuevamente en el parámetro out de la función de llamada.
  2. El parámetro real de 'salida' generalmente no tiene asignado un valor, mientras que a un parámetro real declarado como referencia siempre se le debe asignar un valor antes de llamar.
    Nota: Debe asignar valor al parámetro out en el cuerpo del método; De lo contrario el método no será compilado..
  3. Los parámetros out y ref no crean una nueva ubicación de memoria.
  4. Los parámetros ref y out se tratan de manera diferente en tiempo de ejecución, pero se tratan igual en tiempo de compilación.
ESO