C# Pase por referencia

C# Pase por referencia
Mientras trabaja en una programación orientada a objetos, es posible que haya probado el concepto de valor de valor por referencia en los códigos, i.mi. C, C++. Pasar por referencia medios para indicar la ubicación de memoria de una determinada variable sin crear sus copias. Las referencias probablemente se usan para realizar ciertos cambios y hacer que se reflejen en la ubicación de la memoria original sin ningún problema. Tendemos a usar el carácter "&" en idiomas orientados a objetos para realizar referencias de pasar por.

Dentro de C#, realizamos los valores de aprobación por referencia utilizando la palabra clave "Ref". Vamos a ver cómo funciona. Comenzando con la implementación de esta guía, debemos tener un archivo C# para crear algunos códigos de programación en ella. Hasta ahora, todo bien; Hemos estado utilizando la consulta "Touch" de Ubuntu para generar un nuevo archivo C# en el directorio de trabajo actual de nuestro sistema Linux.

Ejemplo 01

Comenzaremos nuestro primer ejemplo de este código con la definición de estructura del programa C#. Entonces, abrimos el C#, creamos un archivo en el editor de texto incorporado de Ubuntu 20.04, y agregó la biblioteca "Sistema" en su primera línea. Esta biblioteca es la principal fuente de entrada y salida dentro de los códigos C#. Sin esta biblioteca, nuestro código no nos sirve porque no funcionará de la manera que queremos. Entonces, después de agregar la biblioteca, hemos creado un espacio de nombres aleatorio "referencia" en este código. Este espacio de nombres está definido por el usuario.

También hemos creado una nueva clase definida por el usuario, "referencia", en este programa para inicializar nuestro código con alguna implementación. Esta clase de "referencia" definida por el usuario contiene un total de 2 funciones en ella. La primera función es la función Main () incorporada con el tipo de retorno "Vacío estático", que también se dice que es la función del controlador de nuestro código C#, I.mi. Toda la ejecución comienza desde él. La otra función es una función aleatoria definida por el usuario llamada "Actualización", que tiene el tipo de retorno "Vacío estático público".

La consola.La función WriteLine () está aquí para mostrar el valor original de una variable "n" que utiliza sus parámetros como se muestra a continuación en la imagen. Después de esto, llamamos a la función "actualización" de la variable de aprobación principal "n" como un valor paramétrico. Ahora, el control va a la función "Actualización", que ha estado tomando el valor de la variable "n" como referencia utilizando la nueva variable "Val" del tipo entero. Esta variable "Val" multiplicará su valor aprobado "5" de la función main () por "3" y sobrescribirá a la variable "Val".

No hay una declaración de devolución aquí. La ejecución de la función de actualización se ha completado y el control ha vuelto a la función "principal". La función main () ejecuta su próxima consola.Función WriteLine () para mostrar el valor actualizado de la variable "n" usando "n" en sus parámetros. La función principal () y nuestro código C# están completos y están listos para ser utilizados. Guardémoslo por Ctrl+S y lo salgan con Ctrl+X primero.

Después de guardar el archivo C#, el primer paso que tenemos que hacer es compilar este código con el compilador "MCS" de C# ya configurado en nuestro Ubuntu 20.04 sistema. Entonces, lo hicimos, y el archivo "exe" para este código compilado se ha creado automáticamente en la misma ubicación. Hemos utilizado la instrucción de ejecución de tiempo de ejecución "mono" para los códigos C# para ejecutar este archivo "exe" y obtuvieron el resultado de Below Shows. Resulta que el valor original y el valor actualizado son el mismo, yo.mi. No se han realizado cambios hasta ahora.

Vamos a ver el problema ahora. Cuando intentamos actualizar el valor de la variable "n" pasando como referencia, no localiza la dirección de memoria de la variable original "n". En su lugar, creó otro objeto de réplica con el mismo nombre y valor y lo pasó a la función de actualización. Por lo tanto, los cambios realizados en el nuevo objeto no afectan el valor de la variable original "n".

Para evitar este problema, el marco C# surgió con la nueva palabra clave "Ref" para pasar los valores como referencia a cualquier parámetro de función. Usando esta palabra clave "ref", la ubicación de memoria variable original se ha utilizado en lugar de la nueva dirección de memoria, yo.mi. apuntando hacia la ubicación de la memoria de la variable original. Por lo tanto, hemos actualizado nuestro código y hemos utilizado la palabra clave 'ref' al pasar la variable "n" como referencia a la función de actualización. Esta palabra clave se ha utilizado en la función main () mientras la función de la función a la función "actualizar" y en los parámetros de la función "update ()" como se muestra.

Después de compilar el archivo C# actualizado y ejecutar su "exe" justo después de eso, se nos ha presentado la salida mostrada. Esta vez, el valor "5" de la variable "n" se ha actualizado a "15" debido al uso de la palabra clave "ref" para pasar un valor como referencia.

Ejemplo 02

Veamos otro ejemplo para realizar el intercambio de valores en parámetros. La "prueba" de la clase ha estado utilizando una función de "intercambio" definida por el usuario y la función de controlador principal (). La ejecución comenzó a partir del método main () donde hemos creado un objeto "t" de la prueba de clase e inicializadas dos variables enteras, V1 y V2, con valores enteros: la consola.Las declaraciones de funciones WriteLine () muestran los valores de las variables V1 y V2 antes del intercambio.

Después de eso, la función de intercambio se llama al pasar las variables V1 y V2 en sus parámetros como referencia. La palabra clave "ref" se ha utilizado aquí para ambas variables. Dentro de la implementación de la función "Actualización", también hemos utilizado la palabra clave "Ref" para ambas variables N1 y N2 para pasar los valores por referencia. Para intercambiar valores de una variable a otra, debemos tener un tercer valor para realizar esto. La nueva variable "V" se ha inicializado dentro de esta función, tomando el valor de la variable N1 como la primera parte. El valor de N2 se ha sobrescribido en la variable N1, y el valor de la variable V se ha guardado a la variable N2. El intercambio del valor N1 con N2 se ha realizado aquí. La consola de funciones main ().La función WriteLine () está aquí para mostrar ahora los valores recién intercambiados de N1 y N2.

Después de la compilación y ejecución de este código de ejemplo, tenemos valores de V1 y V2 como 14 y 7 antes del intercambio. Después del intercambio, resulta ser lo contrario,.mi. v1 = 7 y v2 = 14.

Si eliminamos la palabra clave "ref" de la llamada de función y la definición de función de la función "actualización" como lo hicimos a continuación, el intercambio no se realizará.

Aquí puede ver que la salida muestra que los valores de V1 y V2 son los mismos incluso después de usar la función de intercambio.

Conclusión

Esta guía se trata de usar la palabra clave "Ref" en C# para realizar valores de aprobación por una referencia. Esta referencia se ha realizado utilizando la ubicación de memoria exacta de ciertas variables. Dentro de esta guía, hemos discutido el uso de la palabra clave "Ref" para actualizar el valor original de una variable multiplicándola con algún número e intercambiando los valores de dos variables en dos ejemplos diferentes. Esto se ha realizado muy bien con "Ref".