El afuera es una palabra clave en C# que se utiliza para pasar argumentos a métodos como tipo de referencia. Generalmente se usa cuando un método devuelve múltiples valores.
Puntos importantes:
- Es similar a la palabra clave ref. Pero el principal diferencia entre árbitro y fuera La palabra clave es que ref necesita que la variable se inicialice antes de pasar al método. Pero nuestro parámetro no requiere que las variables se inicialicen antes de pasar al método. Pero antes de que devuelva un valor al método que llama, la variable debe inicializarse en el método llamado.
- También es similar a la palabra clave in pero la en La palabra clave no permite que el método que llamó cambie el valor del argumento, pero árbitro lo permite.
- Para usar afuera palabra clave como parámetro, tanto la definición del método como el método de llamada deben usar el afuera palabra clave explícitamente.
- No se permite el uso de parámetros de salida en métodos asincrónicos.
- No se permite el uso de parámetros de salida en métodos iteradores.
- Puede haber más de un parámetro de salida en un método.
- En el momento de la llamada al método, el parámetro out se puede declarar en línea. Pero se puede acceder a los parámetros de salida en línea en el mismo bloque de código donde llama.
- La sobrecarga de métodos también se puede realizar utilizando nuestros parámetros.
- Las propiedades no se pueden pasar como parámetros externos ya que no son variables.
- Hasta C# 6.0, un usuario primero declara la variable y luego solo puede pasarla como argumento de salida. Pero a partir de C# 7.0, a excepción de una declaración de variable separada, el usuario también puede declarar la variable de salida en la lista de argumentos de la llamada al método.
Declaración de nuestro parámetro:
// No need to initialize // the variable here data_type variable_name; Method_Name(out variable_name); // you can also convert both above two // lines of codes as follows from // C# 7.0 onwards Method_Name(out data_type variable_name);>
Aquí el valor de nombre de la variable debe inicializarse en el método llamado antes de que devuelva un valor.
Ejemplo:
C#
// C# program to illustrate the> // concept of out parameter> using> System;> class> GFG {> >// Main method> >static> public> void> Main()> >{> >// Declaring variable> >// without assigning value> >int> i;> >// Pass variable i to the method> >// using out keyword> >Addition(>out> i);> >// Display the value i> >Console.WriteLine(>'The addition of the value is: {0}'>, i);> >}> >// Method in which out parameter is passed> >// and this method returns the value of> >// the passed parameter> >public> static> void> Addition(>out> int> i)> >{> >i = 30;> >i += i;> >}> }> |
>
>Producción:
The addition of the value is: 60>
Múltiples parámetros de salida: En C#, un usuario puede pasar múltiples parámetros al método y el método devuelve múltiples valores.
Ejemplo: En el siguiente código, declaramos dos variables de valor sin inicializar, es decir, int i, j;. Ahora pasamos estos parámetros al método Suma usando una palabra clave como Suma (fuera i, fuera j);. El valor de estas variables se asigna en el método en el que pasaron.
C#
comando de linea de autocad
// C# program to illustrate the> // concept of multiple out parameter> using> System;> class> GFG {> >// Main method> >static> public> void> Main()> >{> >// Declaring variables> >// without assigning values> >int> i, j;> >// Pass multiple variable to> >// the method using out keyword> >Addition(>out> i,>out> j);> >// Display the value i and j> >Console.WriteLine(>'The addition of the value is: {0}'>, i);> >Console.WriteLine(>'The addition of the value is: {0}'>, j);> >}> >// Method in which out parameters> >// are passed and this method returns> >// the values of the passed parameters> >public> static> void> Addition(>out> int> p,>out> int> q)> >{> >p = 30;> >q = 40;> >p += p;> >q += q;> >}> }> |
>
>Producción:
The addition of the value is: 60 The addition of the value is: 80>
Mejora del parámetro Out en C# 7.0: En C# 7.0, se agregaron algunas características nuevas al parámetro de salida y las características son:
- En C# 7.0, el parámetro out puede pasar sin su declaración e inicialización, lo que se denomina Declaración en línea del parámetro Out o implícito Escriba el parámetro . Su alcance se limita al cuerpo del método, es decir, al alcance local.
- Se permite el uso del parámetro out. era escriba en la lista de parámetros del método.
- En el parámetro de salida, no es obligatorio que el nombre del parámetro de salida sea el mismo tanto en la definición como en la llamada.
- También se puede utilizar en Try Pattern.
Ejemplo: Los siguientes programas demuestran la declaración en línea del parámetro Out. Aquí la línea de código, es decir, Área (out int length, out int width, out int Rarea); contiene la declaración en línea del parámetro Out ya que estas variables se declaran directamente dentro de la llamada al método. El valor de las variables se inicializa en el método por el que pasaron.
Nota: Necesita la versión C# 7.0 para ejecutar este ejemplo.
Ejemplo:
C#
fecha mecanografiada
// C# program to illustrate the> // concept of out parameter> using> System;> class> GFG> {> >// Main method> >static> public> void> Main()> >{> >// In-line declaring variables> >// without assigning values> >// Passing multiple variable to> >// the method using out keyword> >Area(>out> int> length,>out> int> width,>out> int> Rarea);> >// Display the value length, width, and Rarea> >System.Console.WriteLine(>'Length of the rectangle is: '>+ length);> >System.Console.WriteLine(>'Width of the rectangle is: '>+ width);> >System.Console.WriteLine(>'Area of the rectangle is: '>+ Rarea);> >Console.ReadLine();> >}> >// Method in which out parameters are passed> >// and this method returns the values of> >// the passed parameters> >public> static> void> Area(>out> int> p,>out> int> q,>out> int> Rarea)> >{> >p = 30;> >q = 40;> >Rarea = p * q;> >}> }> |
>
>
Producción:
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>