Diferència entre ref i sortida a C #

Autora: Laura McKinney
Data De La Creació: 2 Abril 2021
Data D’Actualització: 5 Ser Possible 2024
Anonim
Diferència entre ref i sortida a C # - Tecnologia
Diferència entre ref i sortida a C # - Tecnologia

Content


"Ref" i "Out" són els modificadors de paràmetres utilitzats a C #. Utilitzant ref i out, podeu passar qualsevol tipus de valor mitjançant la seva referència a qualsevol mètode. La raó de passar qualsevol tipus de valor per la seva referència introdueix la diferència principal entre la paraula clau ref i out. El ref paraula clau permet al mètode anomenat alterar el contingut de l’argument que se li va passar amb la paraula clau ref. El a fora paraula clau permet que el mètode anomenat pugui retornar més d’un valor en una sola trucada. Analitzem la diferència entre referència i sortida juntament amb un gràfic de comparació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióRefFora
BàsicPermet l’alteració en el valor de l’argument procedit amb la paraula clau ref.Permet un mètode per retornar aquests valors precedits d’una paraula clau fora.
InicialitzacióEl paràmetre ref ha de ser inicialitzat abans de la trucada al mètode.El paràmetre de sortida s'ha d'inicialitzar dins del mètode anomenat abans que finalitzi.
DeclaracióEl paràmetre a modificar per un mètode es declara com a ref mentre es procedeix a la declaració i al mètode.El paràmetre que s’ha de retornar s’ha de declarar com a ref mentre es procedeix a la declaració i al mètode.


Definició de paraula clau Ref

El "ref" és un modificador de paràmetre usat quan es necessita trucar a un mètode amb referència de trucada. Quan volem que els canvis realitzats en els arguments d'un mètode anomenat s'hagin de reflectir en el valor original d'aquesta variable, s'utilitzarà el modificador de paràmetres ref. El tipus de valor que volem declarar com a ref està precedit de la paraula clau "ref" durant la declaració del mètode i de la trucada al mètode. Més d'un paràmetre es pot declarar com a "ref" mentre es truca i es declara un mètode.

utilitzant Sistema; class DemoRef {public void Square (ref int s) {s = s * s; }} classe Ref_main {static void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("una trucada prèvia al mètode:" + a); ob.Square (ref a); // Ref: paraula clau Console.WriteLine ("una trucada posterior:" + a); }} // emetre una trucada abans del mètode: 10 una trucada posterior al mètode: 100

Al codi anterior, la variable "a" es passa com a argument al mètode Square (ref a) juntament amb el modificador de paràmetre ref adjunt. Significa que qualsevol cosa que canviï el mètode Square (ref a) realitzarà la variable "a" que hi ha a dins de la qual reflectirà el valor original del "a", fora del mètode.


Hi ha alguns punts importants que s'han de recordar quan es tracta del modificador de paràmetres "ref".

  • L'argument que esteu transmetent per la referència a un mètode s'ha d'inicialitzar abans que es faci una trucada.
  • El mètode no ha d'assignar el valor inicial a l'argument ref.
  • També podeu utilitzar ref juntament amb la variable de referència.

Definició de paraula clau fora

Cada vegada que truqueu a un mètode, només retornaria un valor. Si voleu que un mètode retorni més d'un valor en una trucada, s'ha d'utilitzar la paraula clau "fora" juntament amb els paràmetres que voleu tornar quan s'acabi el mètode. De vegades és el cas que quan no volem passar res al mètode, sinó que volem que el mètode torni quelcom, fem servir paràmetres amb una paraula clau fora.Entenem-ho amb un exemple.

utilitzant Sistema; class DemoOut {public int Descomposar (x doble, fracció doble) {int enter_num; enter_num = (int) x; fracció = x - nombre sencer; torna tot_num; }} classe Out_maint {static void Main () {DemoOut ob = new DemoOut (); int i; frac doble; i = ob.Descomposar (100.125, fora frac); // va utilitzar la paraula clau Console.WriteLine ("La part del número complet és" + i); Console.WriteLine ("la fracció és" + frac); }} // sortida La porció sencera és 100 La part fraccionària és 0,125

Al codi anterior, es retornen dos valors pel mètode Decompose (). Una retorna mitjançant la paraula clau "return", és a dir, enter_num, i una altra, retorna un paràmetre precedit de la paraula clau mentre que es fa servir el mètode anomenat "frac".

Els punts importants a recordar sobre la paraula clau de fora.

  • A diferència de la paraula clau ref, el paràmetre que utilitza la paraula clau no s'ha d'inicialitzar abans de fer una crida al mètode.
  • El mètode anomenat s'assignarà un valor al paràmetre amb una paraula clau fora, ja que es considera que no s'ha assignat dins del mètode anomenat, és a dir, se suposa que no té cap valor inicial.
  • El mètode anomenat ha d'assignar un valor al paràmetre out abans que s'acabi el mètode.
  • La paraula clau de sortida també és aplicable a la variable de referència.
  1. Quan una variable precedida per la paraula clau ref es passa a qualsevol mètode, les modificacions que s'hi fan dins del mètode es reflecteixen en el seu valor original. Quan una variable passada a un mètode és precedida per una paraula clau fora, el mètode la retorna sense utilitzar la paraula clau de retorn.
  2. El paràmetre ref s'ha d'inicialitzar abans de passar a un mètode. D'altra banda, el paràmetre out s'ha d'inicialitzar en el mètode al qual es passa.
  3. Mentre es truca, es declara o es defineix un mètode, el paràmetre ref es declara explícitament com a ref. D'altra banda, mentre es truca, es declara o es defineix un mètode, el paràmetre out es declara explícitament com a "fora".

Conclusió:

Sempre que es fa passar la variable per referència a un mètode, es pot utilitzar la paraula clau ref i out. Mentre que, la raó d’utilitzar les dues paraules clau és diferent quan es pot utilitzar la paraula clau ref per alterar el valor de l’argument precedit per ref paraula clau, es va passar al mètode anomenat i la paraula clau de sortida es retorna el valor de l’argument precedit. mitjançant la paraula clau fora.