Você está na página 1de 13

ESTRUCTURAS DE DATOS ESTRUCTURAS DINAMICAS

Luis Fernando Muoz Pantoja Ingeniero de Sistemas luismunoz@unipanamericana.edu.co

Copyright 2010 Luis Fernando Muoz Pantoja Ingeniero de Sistemas Derechos reservados

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

DEFINICIONES
Algunos mtodos requieren que se les pasen argumentos (parmetros). Los tipos de los parmetros debern especificarse en la declaracin de cada mtodo. En general, existen dos formas de pasar parmetros:
por valor y 2. por referencia.
1.

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Paso por valor.


Todas las variables que aparezcan en una lista de parmetros sern consideradas parmetros por valor, a menos que la lista contenga la palabra clave out o la palabra clave ref. En el paso por valor se enva una copia del valor del parmetro, de manera que el mtodo que recibe ese valor no puede cambiar el contenido de la variable utilizada en el envo del mensaje

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Ejemplo. Paso por valor.


using System; using C = System.Console; class Receptor { int s ; public Receptor( int x ) { x+=10 ; C.WriteLine(" El valor de x es : {0} ", x ) ; s=x; } } class Principal { public static void Main( ) { int a = 20 ; Receptor r = new Receptor ( a ) ; C.WriteLine(" El valor de a es : {0} ", a ) ; } }

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Paso por Referencia.


En el paso de parmetros por referencia, en lugar de pasar una copia del valor almacenado en la variable, se pasa la direccin de memoria de ella. As, el mtodo receptor puede modificar el contenido de la variable. En C#, los parmetros por referencia se crean utilizando la palabra clave ref en la lista de parmetros del mtodo.

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS Ejemplo. Paso por referencia.
using System; using C = System.Console; class Receptor { int s ; public Receptor( ref int x ) {
x+=10 ; C.WriteLine(" El valor de x es : {0} ", x ) ; s=x;

} } class Principal { public static void Main( ) { int a = 20 ; Receptor r = new Receptor ( ref a ) ; C.WriteLine(" El valor de a es : {0} ", a ) ; } }

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Arreglos de Parmetros
Es usual que los mtodos se declaren con un nmero especfico de parmetros. Sin embargo, es posible que se requiera un mtodo para el cual no est determinado el nmero de parmetros que manejar. En este caso, el mtodo debe disearse de manera que pueda recibir un nmero variable de parmetros. La declaracin de un mtodo con un nmero variable de parmetros se lleva a cabo por medio de un arreglo de parmetros.

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Arreglos de Parmetros Params.


La palabra clave params permite especificar un mtodo que recibe un nmero variable de parmetros

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS Ejemplo. Paso de un nmero variable de parmetros
using System; using C = System.Console; class ParamVar { public static void receptorDeEnteros( params int[ ] lista) { for(int i=0 ; i < lista.Length ; i++ ) { C.WriteLine(lista[i]); } C.WriteLine( ); } public static void receptorDeObjetos( params object[ ] lista) { for(int i=0 ; i < lista.Length ; i++ ) { C.WriteLine( (object)lista[i] ); } C.WriteLine( ); } } public static void Main( ) { receptorDeEnteros(1,2,3); receptorDeObjetos(1, 'A' , "Prueba" ) ; int[ ] arreglo = new int[3] {100, 200, 300} ; receptorDeEnteros(arreglo) ;

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS Ejemplo. Uso de parmetros variables.
using System ; using C = System.Console ; class ParamVars { public static void Main( ) { ParamVars obj = new ParamVars( ); obj.recibeParam(1) ; obj.recibeParam(1, 2) ; obj.recibeParam(1, 2, 3) ; } void recibeParams(params int [ ] arreglo) { C.WriteLine("============") ; C.WriteLine("recibeParams( )") ; C.WriteLine("============") ; foreach(int elem in arreglo) C.WriteLine(elem) ; } }

10

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Arreglos de Parmetros Out.


La palabra clave out hace que un mtodo se refiera a la misma variable que le fue pasada. Cualquier cambio hecho al parmetro en el mtodo se reflejar en la variable cuando se le regrese el control al mtodo que envi el mensaje. La declaracin con out es til cuando se necesita un mtodo que regrese mltiples valores. Un mtodo que utiliza un parmetro out puede, adems, tener un valor de retorno. Un mtodo puede tener ms de un parmetro out.

11

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS Ejemplo. Uso de out para regresar varios valores.
class Principal { public static int receptor(out int i, out char c, out string n) { i = 10 ; c = 'A' ; n = "Paco" ; return 20 ; } public static void Main( ) { int x; char y; string z; C.WriteLine(receptor(out x, out y, out z)); C.WriteLine(x); C.WriteLine(y); C.WriteLine(z); } }

12

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

ESTRUCTURAS DE DATOS PASO DE PARAMETROS POR REFERENCIA A METODOS

Resumen Uso tipo de Parmetros


Mecanismos El paso por valor es el ms habitual El valor de retorno del mtodo es til para un solo valor ref y/o out son tiles para ms de un valor de retorno ref slo se usa si los datos se pasan en ambos sentidos Eficiencia El paso por valor suele ser el ms eficaz

13

Universidad Panamericana - Ing. Luis Fernando Muoz Pantoja

23 de Agosto de 2010

Você também pode gostar