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:
refrequiere que la variable esté inicializada antes de pasarla al método. El método puede leer y modificar el valor.outno 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.