Aventuras .NET, ¡descubre los métodos!
Tags: dotnet, tutorial, beginners, csharp
Published: 2020-01-28 12:29:46

---
title: Aventuras .NET, ¡descubre los métodos!
published: true
description: Descubre qué son los métodos y su gran utilidad
tags: dotnet, tutorial, beginners, csharp
canonical_url: https://geekstorming.wordpress.com/2020/01/07/aventuras-net-metodos/
cover_image: https://geekstorming.files.wordpress.com/2019/12/7e49c-1mfohvi5b1xzkytxiaky7pq.png
series: Aventuras .NET con C#
---

Las aventuras .NET continúan, ¡y esta vez para aprender qué son los métodos e implementarlos en nuestra aplicación!

Sigamos desarrollando la aplicación de consola que creamos en el primer _post_, donde arrancamos la aplicación y saludamos al mundo.

Hasta ahora nuestro código era así, una aplicación sencilla que saluda, da unas breves instrucciones, espera a recibir tu nombre y saludarte de una forma personalizada:

```cs
static void Main(string[] args)
{
    Console.WriteLine("¡Hola! Dime tu nombre");
    Console.WriteLine("Después pulsa ENTER");
 
    string tuNombre = "";
 
    tuNombre = Console.ReadLine();
 
    Console.WriteLine("Bienvenid@, " + tuNombre);
 
    Console.ReadLine();
}
```

Este código es sencillo, pero a medida que las necesidades cambian y el código crece, puede que no queramos apilar y apilar líneas y líneas de código dentro de esta sección llamada `Main`… ¿pero qué es exactamente?

`Main` es lo que conocemos como un método. Es una porción de código que se ejecuta, desde la primera línea hasta la última, tal y como vemos que funcionan los programas.

Los métodos agrupan código bajo un nombre concreto, para llamar a ese código a través del nombre que le hemos dado. Son “invocados”, ejecutan su código y después regresan al lugar desde donde han sido invocados para seguir ejecutando el código que reste. ¿Podemos escribir nuestros propios métodos? ¡La respuesta es sí!

Bajo el código que encierra `Main`, después de las llaves que encierran su código (los símbolos `{` y `}`), empezamos a escribir más código, como el que puedes ver aquí:

```cs
static string ObtenerNombre()
{
    string nombre = "";
    nombre = Console.ReadLine();
    return nombre;
}
```

Hemos creado un fragmento de código que con un nombre concreto, `ObtenerNombre`, que tiene tres sencillas líneas.

Declara una variable, espera a que escribas su contenido y, literalmente, la devuelve a quien ha llamado al método, gracias a la palabra `return`. La variable que hemos creado dentro de este método, llamada nombre solo tiene la función de recoger el nombre y lanzarlo hacia el método que lo llama. Después de que el método sea ejecutado, ¡la variable deja de existir! Solo existe dentro de su método.

Si quieres comprobarlo, prueba a escribir el contenido de esa variable dentro del método `Main`, donde puedes ver que no existe:

```cs
static void Main(string[] args)
{
    Console.WriteLine("¡Hola! Dime tu nombre");
    Console.WriteLine("Después pulsa ENTER");
 
    string tuNombre = "";
 
    tuNombre = Console.ReadLine();
 
    // La siguiente línea mostraría un fallo
    // porque fuera del method no existe
    //Console.WriteLine(nombre);
 
    Console.WriteLine("Bienvenid@, " + tuNombre);
 
    Console.ReadLine();
}
 
static string ObtenerNombre()
{
    string nombre = "";
    nombre = Console.ReadLine();
    return nombre; 
}
```

Una vez hemos comprobado que las variables de un método solo existen dentro de los límites del método, es decir el código que está dentro de sus `{ }`, podemos avanzar.

Ahora podemos sustituir las líneas dentro del método `Main` que pedían nuestro nombre, lo escribían en una variable… por el método que acabamos de crear. Finalmente, el código quedaría de la siguiente forma:

```cs
static void Main(string[] args)
{
    Console.WriteLine("¡Hola! Dime tu nombre");
    Console.WriteLine("Después pulsa ENTER");
 
    // Hemos sustituido las líneas que pedían nuestro nombre
    // por la llamada al method que hemos creado
    string tuNombre = ObtenerNombre();
 
    Console.WriteLine("Bienvenid@, " + tuNombre);
 
    Console.ReadLine();
}
 
static string ObtenerNombre()
{
    string nombre = "";
    nombre = Console.ReadLine();
    return nombre; 
}
```

¡Pulsa ▶️ y ejecuta la aplicación, tal y como hicimos en el capítulo anterior! Comprobarás que el funcionamiento es exactamente el mismo, pero hemos mejorado la forma en la que lo escribimos.

Las ventajas de los métodos es que podemos llamarlos tantas veces queramos, ahí reside su potencia. ¡Podemos ejecutar el código múltiples veces sin necesidad de repetir código! Así que podemos modificar el contenido de `Main` para pedir y almacenar dos nombres diferentes, a los que saludaremos:

```cs
static void Main(string[] args)
{
    Console.WriteLine("¡Hola! ¿Cuales son vuestros nombres?");
 
    Console.WriteLine("Primer nombre: ");
    string tuNombre = ObtenerNombre();
    Console.WriteLine("Segundo nombre: ");
    string otroNombre = ObtenerNombre();
 
    Console.WriteLine("Bienvenid@, " + tuNombre);
    Console.WriteLine("Bienvenid@ también, " + otroNombre);
 
    Console.ReadLine();
}
```

En el próximo post, exploraremos los bucles y su gran utilidad.

seeU!