Sobes.tech
Junior — Middle

¿Cuáles son las diferencias entre las palabras clave ref y out al pasar variables de referencia en métodos?

sobes.tech AI

Respuesta de la IA

En C#, las palabras clave ref y out se utilizan para pasar parámetros por referencia, pero tienen diferencias importantes:

  • ref requiere que la variable esté inicializada antes de pasarla al método. El método puede leer y modificar el valor.
  • out no requiere que la variable esté inicializada previamente, pero el método debe asignarle un valor antes de salir.

Ejemplo:

void ExampleRef(ref int x) {
    x += 10; // se puede leer y modificar
}

void ExampleOut(out int y) {
    y = 42; // obligatorio asignar
}

int a = 5;
ExampleRef(ref a); // a debe estar inicializado

int b; // no inicializado
ExampleOut(out b); // el método asigna un valor a b

Por lo tanto, ref se usa cuando se necesita pasar y modificar un valor existente, y out cuando el método debe devolver múltiples valores a través de los parámetros.