5 metodos y parametros

20
Módulo I- Introducción a la Módulo I- Introducción a la Programación en la Programación en la Plataforma .Net con C# Plataforma .Net con C#

Transcript of 5 metodos y parametros

Page 1: 5 metodos y parametros

Módulo I- Introducción a la Módulo I- Introducción a la Programación en la Plataforma .Net Programación en la Plataforma .Net con C#con C#

Page 2: 5 metodos y parametros

TEMARIOTEMARIO

CAPITULO III.- INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C#

Introducción a los MétodosIntroducción a los Métodos Utilización de ParámetrosUtilización de Parámetros

Page 3: 5 metodos y parametros

Definición de métodosDefinición de métodosMain es un métodoMain es un método Para definir métodos propios se usa la Para definir métodos propios se usa la

misma sintaxismisma sintaxis

using System;

class ExampleClass { static void ExampleMethod( ) { Console.WriteLine("ExampleMethod"); } static void Main( ) { // ... }}

using System;

class ExampleClass { static void ExampleMethod( ) { Console.WriteLine("ExampleMethod"); } static void Main( ) { // ... }}

INTRODUCCIÓN A LOS MÉTODOSINTRODUCCIÓN A LOS MÉTODOSINTRODUCCIÓN A LOS MÉTODOSINTRODUCCIÓN A LOS MÉTODOS

Page 4: 5 metodos y parametros

Tipos MétodosTipos MétodosProcedimiento VoidProcedimiento Void: Un procedimiento : Un procedimiento debe tener un nombre. Este nombre será debe tener un nombre. Este nombre será utilizado para invocarle. No retorna datos. utilizado para invocarle. No retorna datos. Ej: Void Hola Mundo()Ej: Void Hola Mundo()Funciones:Funciones: Si un método devuelve valor, Si un método devuelve valor, se llama función sino retorna valor se le se llama función sino retorna valor se le llama procedimiento.llama procedimiento.Procedimientos de eventosProcedimientos de eventos: 2 : 2 elementos distinguen un procedimiento elementos distinguen un procedimiento clásico a un de eventos:clásico a un de eventos: La llamada al procedimiento de eventos se La llamada al procedimiento de eventos se

realiza automáticamente.realiza automáticamente. El nombre del procedimiento de eventos es la El nombre del procedimiento de eventos es la

concatenación del nombre del evento para la concatenación del nombre del evento para la cual se gestiona el evento: Ej: button_click()cual se gestiona el evento: Ej: button_click()

Page 5: 5 metodos y parametros

Llamadas a métodosLlamadas a métodosUna vez definido un método, se Una vez definido un método, se puedepuede:: Llamar a un método desde dentro de la Llamar a un método desde dentro de la

misma clasemisma clase Se usa el nombre del método seguido Se usa el nombre del método seguido

de una lista de parámetros entre de una lista de parámetros entre paréntesisparéntesis

Llamar a un método que está en una Llamar a un método que está en una clase diferenteclase diferente Hay que indicar al compilador cuál es Hay que indicar al compilador cuál es

la clase que contiene el método que la clase que contiene el método que se desea llamarse desea llamar

El método llamado se debe declarar El método llamado se debe declarar con la palabra con la palabra claveclave public public

Usar llamadas anidadasUsar llamadas anidadas Unos métodos pueden hacer llamadas Unos métodos pueden hacer llamadas

a otros, que a su vez pueden llamar a a otros, que a su vez pueden llamar a otros métodos, y así sucesivamente.otros métodos, y así sucesivamente.

Page 6: 5 metodos y parametros

Uso de la instrucción Uso de la instrucción returnreturn

Return inmediatoReturn inmediatoReturn con una instrucción Return con una instrucción condicionalcondicional

static void ExampleMethod( ){ int numBeans; //...

Console.WriteLine("Hello"); if (numBeans < 10) return; Console.WriteLine("World");}

static void ExampleMethod( ){ int numBeans; //...

Console.WriteLine("Hello"); if (numBeans < 10) return; Console.WriteLine("World");}

Page 7: 5 metodos y parametros

Uso de variables localesUso de variables locales

Variables localesVariables locales Se crean cuando comienza el métodoSe crean cuando comienza el método Son privadas para el métodoSon privadas para el método Se destruyen a la salidaSe destruyen a la salida

Variables compartidasVariables compartidas Para compartir se utilizan variables de Para compartir se utilizan variables de

claseclase

Conflictos de ámbitoConflictos de ámbito El compilador no avisa si hay conflictos El compilador no avisa si hay conflictos

entre nombres locales y de claseentre nombres locales y de clase

Page 8: 5 metodos y parametros

Devolución de valoresDevolución de valoresEl método se debe declarar con un El método se debe declarar con un tipo que no sea voidtipo que no sea voidSe añade una instrucción return Se añade una instrucción return con una expresióncon una expresión Fija el valor de retornoFija el valor de retorno Se devuelve al llamadorSe devuelve al llamador

Los métodos que no son void deben Los métodos que no son void deben devolver un valordevolver un valor

static int DosMasDos( ) { int a,b; a = 2; b = 2; return a + b;}

static int DosMasDos( ) { int a,b; a = 2; b = 2; return a + b;}

int x;x = DosMasDos( );Console.WriteLine(x);

int x;x = DosMasDos( );Console.WriteLine(x);

Page 9: 5 metodos y parametros

Declaración y llamadas a Declaración y llamadas a parámetrosparámetros

Declaración de parámetrosDeclaración de parámetros Se ponen entre paréntesis después del Se ponen entre paréntesis después del

nombre del métodonombre del método Se definen el tipo y el nombre de cada Se definen el tipo y el nombre de cada

parámetroparámetro

Llamadas a métodos con parámetrosLlamadas a métodos con parámetros Un valor para cada parámetroUn valor para cada parámetro

static void MethodWithParameters(int n, string y) { ... }

MethodWithParameters(2, "Hola, mundo");

static void MethodWithParameters(int n, string y) { ... }

MethodWithParameters(2, "Hola, mundo");

UTILIZACIÓN DE PARAMETROSUTILIZACIÓN DE PARAMETROSUTILIZACIÓN DE PARAMETROSUTILIZACIÓN DE PARAMETROS

Page 10: 5 metodos y parametros

Mecanismos de paso de Mecanismos de paso de parámetrosparámetros

Tres maneras de pasar parámetrosTres maneras de pasar parámetros

entradaentrada Paso por valorPaso por valor

entradasalida

entradasalida

Paso por referenciaPaso por referencia

salidasalida Parámetros de salidaParámetros de salida

Page 11: 5 metodos y parametros

Paso por valorPaso por valorMecanismo predeterminado para el paso Mecanismo predeterminado para el paso de parámetros:de parámetros: Se copia el valor del parámetroSe copia el valor del parámetro Se puede cambiar la variable dentro del Se puede cambiar la variable dentro del

métodométodo No afecta al valor fuera del métodoNo afecta al valor fuera del método El parámetro debe ser de un tipo igual o El parámetro debe ser de un tipo igual o

compatiblecompatiblestatic void SumaUno(int x) {

x++; // Incrementar x}static void Main( ) {

int k = 6;SumaUno(k);Console.WriteLine(k); // Muestra el valor 6, no 7

}

static void SumaUno(int x) {

x++; // Incrementar x}static void Main( ) {

int k = 6;SumaUno(k);Console.WriteLine(k); // Muestra el valor 6, no 7

}

Page 12: 5 metodos y parametros

Paso por referenciaPaso por referencia

¿Qué son los parámetros referencia?¿Qué son los parámetros referencia? Una referencia a una posición de Una referencia a una posición de

memoriamemoria

Uso de parámetros referenciaUso de parámetros referencia Se usa la palabra clave Se usa la palabra clave refref en la en la

declaración y las llamadas al métododeclaración y las llamadas al método Los tipos y valores de variables deben Los tipos y valores de variables deben

coincidircoincidir Los cambios hechos en el método Los cambios hechos en el método

afectan al llamadorafectan al llamador Hay que asignar un valor al parámetro Hay que asignar un valor al parámetro

antes de la llamada al método antes de la llamada al método

Page 13: 5 metodos y parametros

Parámetros de salidaParámetros de salida

¿Qué son los parámetros de ¿Qué son los parámetros de salida?salida? Pasan valores hacia fuera, pero Pasan valores hacia fuera, pero

no hacia dentrono hacia dentro

Uso de parámetros de salidaUso de parámetros de salida Como Como refref, pero no se pasan , pero no se pasan

valores al método valores al método Se usa la palabra clave Se usa la palabra clave outout en la en la

declaración y las llamadas al declaración y las llamadas al método método

static void OutDemo(out int p) {

// ...}int n;OutDemo(out n);

static void OutDemo(out int p) {

// ...}int n;OutDemo(out n);

Page 14: 5 metodos y parametros

Uso de listas de Uso de listas de parámetros de longitud parámetros de longitud variablevariableSe usa la palabra clave paramsSe usa la palabra clave params

Se declara como tabla al final de la Se declara como tabla al final de la lista de parámetroslista de parámetrosSiempre paso por valorSiempre paso por valor

static long AddList(params long[ ] v) { long total, i; for (i = 0, total = 0; i < v.Length; i++) total += v[i]; return total;}static void Main( ) { long x = AddList(63,21,84);}

static long AddList(params long[ ] v) { long total, i; for (i = 0, total = 0; i < v.Length; i++) total += v[i]; return total;}static void Main( ) { long x = AddList(63,21,84);}

Page 15: 5 metodos y parametros

Normas para el paso de Normas para el paso de parámetrosparámetros

Mecanismos Mecanismos El paso por valor es el más habitualEl paso por valor es el más habitual El valor de retorno del método es útil El valor de retorno del método es útil

para un solo valorpara un solo valor refref y/o y/o outout son útiles para más de un son útiles para más de un

valor de retornovalor de retorno refref sólo se usa si los datos se pasan en sólo se usa si los datos se pasan en

ambos sentidos ambos sentidos

Eficiencia Eficiencia El paso por valor suele ser el más eficaz El paso por valor suele ser el más eficaz

Page 16: 5 metodos y parametros

Uso de métodos Uso de métodos recursivosrecursivos

Un método puede hacer una llamada Un método puede hacer una llamada a sí mismoa sí mismo DirectamenteDirectamente IndirectamenteIndirectamente

Útil para resolver ciertos problemasÚtil para resolver ciertos problemas

Page 17: 5 metodos y parametros

Declaración de métodos Declaración de métodos sobrecargadossobrecargados

Métodos que comparten un nombre Métodos que comparten un nombre en una claseen una clase Se distinguen examinando la lista de Se distinguen examinando la lista de

parámetrosparámetrosclass OverloadingExample{ static int Suma(int a, int b) { return a + b; } static int Suma(int a, int b, int c) { return a + b + c; } static void Main( ) { Console.WriteLine(Suma(1,2) + Suma(1,2,3)); }}

class OverloadingExample{ static int Suma(int a, int b) { return a + b; } static int Suma(int a, int b, int c) { return a + b + c; } static void Main( ) { Console.WriteLine(Suma(1,2) + Suma(1,2,3)); }}

Page 18: 5 metodos y parametros

Signaturas de métodosSignaturas de métodos

Las signaturas de métodos Las signaturas de métodos deben ser únicas dentro de deben ser únicas dentro de una clase una clase Definición de signaturaDefinición de signatura

Nombre del método

Tipo de parámetro

Modificador

Nombre del método

Tipo de parámetro

Modificador

Forman la definiciónForman la definiciónde la signaturade la signatura

Forman la definiciónForman la definiciónde la signaturade la signatura

Nombre de parámetro

Tipo de retorno de método

Nombre de parámetro

Tipo de retorno de método

No afectan a laNo afectan a lasignaturasignatura

No afectan a laNo afectan a lasignaturasignatura

Page 19: 5 metodos y parametros

Uso de métodos Uso de métodos sobrecargadossobrecargados

Conviene usar métodos Conviene usar métodos sobrecargados sisobrecargados si:: Hay métodos similares que requieren Hay métodos similares que requieren

parámetros diferentesparámetros diferentes Se quiere añadir funcionalidad al código Se quiere añadir funcionalidad al código

existenteexistente

No hay que abusar, ya queNo hay que abusar, ya que:: Son difíciles de depurarSon difíciles de depurar Son difíciles de mantenerSon difíciles de mantener

Page 20: 5 metodos y parametros

EjerciciosEjercicios1. Desarrolle un programa que calcule la fórmula de energía

cinética. El cálculo debe estar definido en una función que reciba los datos para el cálculo y que retorne el resultado a una variable. Fórmula: Ec   =   1 / 2 *  M *  V 2.

2. Desarrolle un programa que determine si un número es primo, el calculo debe ser realizado en una función que recibe como parámetro el numero a evaluar y retorno si es primo o no (verdadero o falso). Un número es primo cuando solo es divisible entre él y la unidad. Ej.: 3, 5, 7, 11,17….

3. Desarrolle un programa que calcule en factorial de un numero. El calculo debe ser realizado en una función que reciba como parámetro el numero a factorizar.

4. Opcional: Desarrollar el programa de factorial pero con funciones recursivas