MeTodos

download MeTodos

of 4

description

MeTodos

Transcript of MeTodos

Los programas grandes pueden ser complejos, difciles de comprender y de depurar. La tcnica ms importante para reducir esta complejidad consiste en dividir el programa en secciones (relativamente) independientes. Esto nos permite enfocarnos en una seccin especfica sin distraernos con el programa completo. Adems, si la seccin tiene nombre podemos llamarla o invocarla (es decir, hacer que sea utilizada por otra instancia) con slo hacer referencia a ella. Trabajar de esta manera nos permite, en cierto sentido, pensar a un nivel ms alto. En C# a dichas secciones se les conoce como mtodos.

Aqu se declara (introduce) el mtodo; a esto se le conoce como encabezado del mtodo. El encabezado declara el nombre del mtodo (que nosotros tenemos la libertad de elegir) y los elementos que deben suministrarse para controlar su operacin. C# utiliza los trminos argumentos y parmetros para definir estos elementos;

Al resto del mtodo se le conoce como cuerpo, y va encerrado entre llaves { }; aqu es donde se realiza el trabajo. Una importante decisin que debe tomar el programador es el lugar desde donde se puede invocar el mtodo; en este sentido, tenemos dos opciones:1. El mtodo slo puede ser invocado desde el interior del programa actual; en este caso utilizamos la palabra clave private.2. El mtodo puede ser invocado desde otro programa; en este caso utilizamos la palabra clave public.

Otra decisin que debe tomar el programador es:1. El mtodo realizar una tarea sin necesidad de producir un resultado? En este caso utilizamos la palabra clave void despus de private.2. El mtodo calcular un resultado y lo devolver a la seccin de cdigo que lo invoc? En este caso tenemos que declarar el tipo del resultado, en vez de usar void.

La funcin que desempean las variables locales consiste en ayudar al mtodo a realizar su trabajo, sin importar cul sea ste. Las variables tienen un alcance limitado, ya que estn restringidas a su propio mtodo. Su existencia es temporal: se crean al momento de invocar el mtodo, y se destruyen cuando el mtodo termina de ejecutarse.

Para invocar un mtodo privado en C# es preciso indicar su nombre junto con una lista de argumentos entre parntesis. La transferencia se realiza de izquierda a derecha. La llamada debe proporcionar el nmero y tipo correctos de cada argumento.

En C# hay dos formas de pasar elementos a un mtodo: por valor y por referencia. El orden de los parmetros tambin est bajo nuestro control.

Podemos utilizar argumentos por referencia para devolver cualquier nmero de resultados de un mtodo. Hay dos estilos para pasar referencias: utilizando las palabras clave ref o out.

Las palabras clave out y ref permiten que el programador especifique con mucha precisin de qu manera el mtodo que recibe los argumentos puede acceder a stos y modificarlos. Hay dos posibilidades:1. El mtodo invocado modifica el valor existente de un argumento en cierta forma. A esto se le conoce comnmente como actualizar. Para ello es preciso que el mtodo acceda al valor actual del argumento. En este caso utilizamos la palabra clave ref.2. El mtodo invocado coloca un valor completamente nuevo en un argumento, por lo cual no necesita acceder a su valor actual. En este caso utilizamos la palabra clave out.

A veces es necesario codificar mtodos que realicen un clculo y enven un resultado al resto del programa, de manera que pueda emplearlo en clculos posteriores. En estos casos podemos utilizar la instruccin return.

//USANDO METODO CON VOIDusing System;namespace EjemploMet1{ class Program { public static void Mensaje() { Console.WriteLine("Hola mundo"); } static void Main(string[] args) { Mensaje(); Console.ReadKey(); } }}

//USANDO METODO CON RETURN Y PARAMETROS POR VALORusing System;namespace EjemploMet2{ class Program { public static int pedir(string m) { int x; Console.Write("{0} ",m); x = int.Parse(Console.ReadLine()); return (x); } public static void imp(string m, int x) { Console.WriteLine("{0} {1}", m,x); }

static void Main(string[] args) { int x = pedir("De el valor de X: "); imp("El valor de X = ", x); Console.ReadKey(); } }}

//USANDO METODO CON PARAMETROS OUTusing System;namespace EjemploMet3{ class Program { public static void pedir(string m, out int x) { Console.Write("{0} ", m); x = int.Parse(Console.ReadLine()); } public static void imp(string m, int x) { Console.WriteLine("{0} {1}", m, x); } static void Main(string[] args) { int x; pedir("De el valor de X: ", out x); imp("El valor de X = ", x); Console.ReadKey(); } }}

//USANDO METODO CON PARAMETROS REFusing System;namespace EjemploMet3{ class Program { public static void pedir(string m, ref int x) { Console.Write("{0} ", m); x = int.Parse(Console.ReadLine()); } public static void imp(string m, int x) { Console.WriteLine("{0} {1}", m, x); } static void Main(string[] args) { int x = 0; pedir("De el valor de X: ", ref x); imp("El valor de X = ", x); Console.ReadKey(); } }}