26-Metodos en C#




Un metodo es un bloque de codigo que solo se ejecuta cuando se llama

Los datos, conocidos como parametros se pueden pasar a un metodo

metodos y funciones son lo mismo, y se utilizan para realizar ciertas aciones

los metodos o funciones son buenos porque su codigo puede ser reutilizado una y otra vez, haciendo con que el programa contenga menos lineas de codigo, tornandose mas ligero




...

Crear un metodo

Se define un metodo por su nombre seguido de parentisis()

C# tiene algunos metodos ya predifinidos como el metodo main() pero podemos crear nuestros proprios metodos, para realizar nuestras aciones

Ejemplo

 class Program
 {
   static void MyMetodo() 
   {
     //codigo se ejecuta aqui
   }
 }                    

Explicacion

  • MyMetodo() es el nombre del método
  • static significa que el método pertenece a la clase Programa y no un objeto de la clase Programa
  • void significa que este método no tiene un valor de retorno

Nota es una buena pratica iniciar los metodos con letra mayuscula




Llamar un metodo

Para llamar un metodo, o dicho de otra forma, ejecutar un metodo basta con escribir el nombre del metodo y dos parentisis, seguido de punto y coma

El seguinte metodo MyMetodo se usa para imprimir un texto cada vez que se llama

Ejemplo

static void MyMetodo()  //Creacion del metodo
{
  Console.WriteLine("Yo voy imprimir esto en el papel");
}

static void Main(string[] args)
{
MyMetodo(); //Lamamos al metodo
}                  

podemos llamar el metodo varias veces

Ejemplo

static void MyMetodo()  //Creacion del metodo
{
  Console.WriteLine("Yo voy imprimir esto en el papel");
}

static void Main(string[] args)
{
MyMetodo(); //Lamamos al metodo
MyMetodo();
MyMetodo();
}                  



Parámetros y Argumentos

La informacion se pasa a los metodos atravez de parametros

Los parametros actuan como variables dentro de los metodos

Los parametros se escriben dentro de parentisis despues del nombre del metodo

Se pueden agregar cuantos parametros deseamos, bastando con que hagamos la separacion por comas

Nel ejemplo seguiente vamos a poner un parametro string fname cuando llamamos al metodo le pasamos un nombre que se utiliza dentro del metodo para escribir el nombre completo


Ejemplo

static void MyMethod(string fname) 
{
  Console.WriteLine(fname + " Flores");
}

static void Main(string[] args)
{
  MyMethod("Ana");
  MyMethod("Marisa");
  MyMethod("Anja");
}       

Salida Ana Flores Marisa Flores Maria Flores


Cuando se pasa un parámetro al método, se le llama argumento

Entonces, del ejemplo anterior: Flores es un parámetro , mientras que Ana, Marisa Maria son argumentos .




Parámetros Múltiples

podemos usar tantos parametros como queramos, basta con que los separemos por comas

Ejemplo

static void MyMethod(string fname, int age) 
{
  Console.WriteLine(fname + " is " + age);
}

static void Main(string[] args)
{
  MyMethod("Liam", 5);
  MyMethod("Jenny", 8);
  MyMethod("Anja", 31);
}       

Salida // Liam is 5 // Jenny is 8 // Anja is 31


Tenga en cuenta que cuando trabaja con varios parámetros, la llamada al método debe tienen el mismo número de argumentos que parámetros, y los argumentos deben pasarse en el mismo orden.




parámetro predeterminado

También puede usar un valor de parámetro predeterminado, usando el signo igual ( =).

Si llamamos al método sin un argumento, usa el valor predeterminado ("Noruega"):

Ejemplo

static void MyMethod(string country = "Norway") 
{
  Console.WriteLine(country);
}

static void Main(string[] args)
{
  MyMethod("Sweden");
  MyMethod("India");
  MyMethod();
  MyMethod("USA");
}
            

Salida // Sweden // India // Norway // USA




Valores devueltos

Si usamos la palavra void el metodo no debe devolver un valor

Si usted desea que el método devuelva un valor, puede usar un tipo de datos primitivo (como int o double) en lugar de void, y usa la palabra clave return dentro del método:

Ejemplo

static int MyMethod(int x) 
{
  return 5 + x;
}

static void Main(string[] args)
{
  Console.WriteLine(MyMethod(3));
}
        

Salida 8 (5 + 3)


Este ejemplo devuelve la suma de los dos parámetros de un método :

Ejemplo

static int MyMethod(int x, int y) 
{
  return x + y;
}

static void Main(string[] args)
{
  Console.WriteLine(MyMethod(5, 3));
}

Salida 8 (5 + 3)


También puede almacenar el resultado en una variable (recomendado, ya que es más fácil de leer y mantener):

Ejemplo

static int MyMethod(int x, int y) 
{
  return x + y;
}

static void Main(string[] args)
{
  int z = MyMethod(5, 3);
  Console.WriteLine(z);
}

Salida 8 (5 + 3)




Argumentos con nombre

Tambien se pueden enviar valores con una llave seguida del argumento

sintaxis: key:value

Ejemplo

static void MyMethod(string child1, string child2, string child3) 
{
  Console.WriteLine("El niño más pequeño es: " + child3);
}

static void Main(string[] args)
{
  MyMethod(child3: "John", child1: "Liam", child2: "Liam");
}

Salida El niño más pequeño es: John




Sobrecarga de métodos

Con la sobrecarga de métodos , varios métodos pueden tener el mismo nombre con diferentes parámetros:

Ejemplo

 int MyMethod(int x)
 float MyMethod(float x)
 double MyMethod(double x, double y)      

El seguiente metodo suma dos numeros de diferentes tipos

Ejemplo

 static int PlusMethodInt(int x, int y)
 {
   return x + y;
 }
 
 static double PlusMethodDouble(double x, double y)
 {
   return x + y;
 }
 
 static void Main(string[] args)
 {
   int myNum1 = PlusMethodInt(8, 5);
   double myNum2 = PlusMethodDouble(4.3, 6.26);
   Console.WriteLine("Int: " + myNum1);
   Console.WriteLine("Double: " + myNum2);
 }     

En lugar de definir dos métodos que deberían hacer lo mismo, es mejor sobrecargar uno.

Nel seguiente ejemplo sobrecargamos el metodo PlusMethod para trabajar para ambos int y double

 static int PlusMethod(int x, int y)
 {
   return x + y;
 }
 
 static double PlusMethod(double x, double y)
 {
   return x + y;
 }
 
 static void Main(string[] args)
 {
   int myNum1 = PlusMethod(8, 5);
   double myNum2 = PlusMethod(4.3, 6.26);
   Console.WriteLine("Int: " + myNum1);
   Console.WriteLine("Double: " + myNum2);
 }   

Nota: Múltiples métodos pueden tener el mismo nombre siempre que el número y/o tipo de parámetros sean diferentes.






Publicar un comentario

0 Comentarios