Diferencia clave: salida vs referencia en C #
C # es un lenguaje de programación moderno desarrollado por Microsoft. Se utiliza para desarrollar diversas aplicaciones para escritorio, web y móvil. Funciones o métodos es un concepto en programación. Ese grupo de declaraciones que se utilizan para realizar una tarea específica se conoce como función o método. En los programas C #, la ejecución comienza desde main (). Es un ejemplo de método. Cuando se llama a un método, los datos se pasan al método o se reciben del método. El método que llama al nuevo método se conoce como llamar al método. El nuevo método se conoce como método llamado. Para administrar los valores de paso y recuperar el resultado, C # usa parámetros. Son parámetros valorados, parámetros de salida y parámetros de referencia. Los parámetros de valor se utilizan para pasar parámetros al método por valor. Los parámetros de referencia se utilizan para pasar parámetros al método por referencia. Los parámetros de salida se utilizan para devolver el resultado del método. En C #, la palabra clave out se usa para los parámetros de salida y la palabra clave ref se usa para hacer referencia a los parámetros. La diferencia clave entre out y ref en C # es que, out es una palabra clave que se usa para referir un parámetro de salida que se usa para pasar resultados del método llamado al método de llamada, mientras que ref es una palabra clave para hacer referencia a un parámetro de referencia que se usa para pasar datos del método de llamada al método llamado y para recibir los datos del método llamado al método de llamada.out es una palabra clave que se usa para referir un parámetro de salida que se usa para pasar resultados del método llamado al método que llama, mientras que ref es una palabra clave para referir un parámetro de referencia que se usa para pasar datos del método que llama al método llamado y recibir los datos del método llamado al método de llamada.out es una palabra clave que se usa para referir un parámetro de salida que se usa para pasar resultados del método llamado al método que llama, mientras que ref es una palabra clave para hacer referencia a un parámetro de referencia que se usa para pasar datos del método que llama al método llamado y recibir los datos del método llamado al método de llamada.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué hay en C #
3. Qué es ref en C #
4. Similitudes entre out y ref en C #
5. Comparación lado a lado - out vs ref en C # en forma tabular
6. Resumen
¿Qué hay en C #?
La sintaxis de función o método es la siguiente. Un método tiene varios elementos, como el nombre del método, la lista de parámetros, el tipo de retorno y el especificador de acceso.
(lista de parámetros)
{// declaraciones para ejecutar
}
Cada método tiene un método único para realizar la llamada a la función. Las declaraciones ejecutables están entre llaves. El tipo de retorno explica si la función devuelve un valor o no. Cuando no hay un tipo de retorno, se llama void. El especificador de acceso se utiliza para especificar la accesibilidad del método en la aplicación. Los parámetros se utilizan para recibir o pasar datos al método. También puede haber métodos sin parámetros. Los parámetros pueden ser parámetros valorados, parámetros de salida o parámetros de referencia.
Los parámetros de salida se utilizan para devolver los resultados al método de llamada. Para eso, el parámetro debe declararse con la palabra clave out. El parámetro de salida no crea una nueva ubicación de almacenamiento. Generalmente, un método devuelve un valor. Pero en C #, es posible devolver dos valores de una función usando parámetros de salida. Consulte el programa a continuación.
aplicación de espacio de nombres1 {
Cálculo de clase pública {
display vacío público (out int a, out int b) {
valor int = 5;
a = valor;
b = valor;
a = a * a;
b = b * b;
}
public static void main (String args) {
int valor1 = 10, valor2 = 20;
Cal de cálculo = nuevo cálculo ();
cal.display (valor de salida1, valor de salida2);
Console. ReadLine ();
}
}
}
La función de visualización se llama desde el método principal. El valor 1 y el valor dos tienen 10 y 20, pero no se incluyen en el método. El valor de a es 25 y el valor de b también es 25 en la función. Por lo tanto, se devuelven esos valores. Al imprimir value1 y value2, no dará 10 y 20. En su lugar, imprimirá 25 y 25. Usando la palabra clave out, se pueden devolver múltiples valores del método.
¿Qué es ref en C #?
Al pasar parámetros por valor, se crea una nueva ubicación de almacenamiento para cada parámetro. Los parámetros reales que se enviaron desde el programa principal no cambian. En cambio, esos valores se copian en una ubicación separada. Esas nuevas copias de variables se denominan parámetros formales. Consulte el siguiente código.
aplicación de espacio de nombres1 {
Cálculo de clase pública {
intercambio vacío público (int x, int y) {
int temp;
temp = x;
x = y;
y = temp;
}
public static void main (String args) {
Cal de cálculo = nuevo cálculo ();
int p = 2;
int q = 3;
cal.swap (p, q);
Console. WriteLine (p);
Console. WriteLine (q);
Console. ReadLine ();
}
}
}
Según el programa anterior, la clase Calculation tiene un método swap (). En el programa principal, se crea un objeto de tipo Cálculo. Hay dos valores como py q. La variable p tiene valor 2 y la variable q tiene valor 3. Esos dos valores se pasan al método de intercambio. En el método de intercambio, el valor 2 se copia en la variable x y el valor 3 se copia en la variable y. Usando la variable temporal, los valores se intercambian. De vuelta en el programa principal, al imprimir pyq, los valores no se intercambian. El valor p sigue siendo 2 y el valor q es 3. Incluso en el método de intercambio, los valores se intercambian pero no se reflejan en el programa principal.
A diferencia de pasar valores como se indicó anteriormente, es posible pasar parámetros por referencia. Una variable de referencia es una referencia a la ubicación de la memoria. No se crea una nueva ubicación de memoria. Los cambios en el método reflejados en el programa principal. En C #, los parámetros de referencia se refieren mediante la palabra clave ref. Consulte el programa a continuación.
aplicación de espacio de nombres1 {
Cálculo de clase pública {
intercambio vacío público (ref int x, ref int y) {
int temp;
temp = x;
x = y;
y = temp;
}
public static void main (String args) {
Cal de cálculo = nuevo cálculo ();
int p = 2;
int q = 3;
cal.swap (ref p, ref q);
Console. WriteLine (p);
Console. WriteLine (q);
Console. ReadLine ();
}
}
}
Según el programa anterior, la clase Cálculo tiene el método de intercambio. En el programa principal, se crea un objeto de tipo Cálculo. Hay dos variables como p y q. La variable p tiene el valor 2 y la variable q tiene el valor 3. En lugar de pasar valores, la referencia a las ubicaciones de memoria de pyq se pasa al método. Esas variables de referencia se refieren mediante ref. En el método de intercambio, en lugar de trasladar los valores a una nueva ubicación, los cambios se realizan en los parámetros reales. Al imprimir los valores pyq del programa principal, dará los valores intercambiados. Ahora el valor p es 3 y el valor q es 2.
¿Cuál es la similitud entre out y ref en C #?
Ambas son palabras clave que se utilizan para referirse a los parámetros de un método
¿Cuál es la diferencia entre out y ref en C #?
Diferencia del medio del artículo antes de la mesa
out vs ref en C # |
|
La salida es una palabra clave en C # que se usa para referirse a un parámetro de salida. Se utiliza para pasar los resultados de un método llamado a llamar al método. | La ref es una palabra clave en C # que se usa para referirse a un parámetro de referencia. Se utiliza para pasar datos del método de llamada al método llamado y para devolver datos del método llamado al método de llamada. |
Funcionalidad | |
Cuando se usa la palabra clave out, los datos se pueden pasar del método de llamada al método llamado. Pero esos datos se descartan. Se utiliza para pasar el resultado al método de llamada desde el método llamado. | Cuando se usa la palabra clave ref, los datos se pasan del método de llamada al método llamado y los datos manipulados se devuelven al método de llamada. |
Transferencia de datos | |
Cuando se usa la palabra clave out, los datos se pasan de una manera que es un método llamado al método de llamada. | Cuando se usa la palabra clave ref, los datos se pasan de dos formas, desde el método de llamada al método llamado y desde el método llamado al método de llamada. |
Resumen: salida vs ref en C #
Al invocar un método, puede que sea necesario pasar los valores al método y recuperar los resultados del método. C # tiene diferentes parámetros para lograr eso. Los parámetros de valor se utilizan para pasar parámetros al método por valor. Los parámetros de referencia se utilizan para pasar parámetros al método por referencia. Los parámetros de salida se utilizan para devolver el resultado del método. En C #, la palabra clave out se usa para los parámetros de salida y la palabra clave ref se usa para hacer referencia a los parámetros. La diferencia entre out y ref en C # es que, out es una palabra clave que se usa para referir un parámetro de salida que se usa para pasar resultados de un método llamado a un método de llamada, mientras que ref es una palabra clave para hacer referencia a un parámetro de referencia que se usa para pasar datos de método de llamada al método llamado y recibir los datos del método llamado al método de llamada.
Descargue el PDF de out vs ref en C #
Puede descargar la versión PDF de este artículo y usarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí: Diferencia entre Out y Ref en C #