¿Cuándo se utiliza la palabra clave "ref" en la programación en C#? ¿Debo usarlo después de definir la función sin establecer el valor de retorno? ¿Qué hace?
(2)int i = 0; divertido(ref i); System.Console.WriteLine(i.ToString());
La salida de (1) es 1 y la salida de (2) es 3.
2.
(2) int i = 0; diversión(ref i); (3) int i = 0; fun(out i); System.Console.WriteLine(i.ToString());
(1) y (2) ambos informan un error al compilar: error CS0165 : Uso de variable local "i" no asignada
y (2) error: error CS0165: Uso de variable local "i" no especificada
y (2) error: error CS0165: out es adecuado para funciones que quieren devolver múltiples valores. Por ejemplo, si una función realiza una determinada operación, el resultado es un int, pero ya sea que la función tenga éxito o falle, devolverá un int, pero cuando llamamos a la función, lo hacemos. También quiero saber si la función se ejecuta correctamente, puede usar dicha función en este momento: int i; bool fun (out i); a través del valor bool devuelto por la función fun, puede saber si la función se está ejecutando; exitoso, y luego a través de i in out, podemos conocer el resultado de la operación de la función. Entonces, en general, out se usa principalmente para que una función devuelva múltiples valores de retorno.
Para resumir:
Las palabras clave Ref y Out proporcionan una funcionalidad similar y funcionan de manera similar a las variables de puntero C. La ligera diferencia es:
Cuando se utilizan parámetros de tipo Ref, los parámetros de entrada deben inicializarse primero. Out es diferente, debe inicializarse en el método.
Cuando utilice Ref y Out al mismo tiempo, debe prestar atención a agregar la palabra clave Ref o Out en los parámetros del método y al ejecutar el método para cumplir con los requisitos de coincidencia.
Out es más adecuado para situaciones en las que es necesario devolver múltiples valores de retorno, mientras que Ref es adecuado para situaciones en las que el método llamado necesita modificar la referencia de la persona que llama.