This article is currently in the process of being translated into Spanish (~99% done).
Methods (functions)
Mientras que las propiedades y los campos pueden considerarse partes pasivas de una clase, los métodos son activos. Realizarán una o varias acciones y, opcionalmente, devolverán un resultado. En otros lenguajes de programación, a veces se les llama funciones o incluso "funcs", pero en C #, donde pertenecen a una clase, se denominan métodos. Los métodos son muy útiles porque le permiten encapsular una parte de la funcionalidad en un método que luego puede volver a llamar desde varios lugares.
Un metodo se define así:
<visibility> <return type> <name>(<parameters>)
{
<method code>
}
Aquí hay un ejemplo muy básico:
public int AddNumbers(int number1, int number2)
{
return number1 + number2;
}
Este método muy básico adicionará dos números y regresa el resultado. Recorramos las diferentes partes de él:
- public [pública] es la visibilidad (más de esto más adelante en este tutorial).
- int es el tipo de dato retornado. Si quiere que su método no regrese algo, use la palabra clave void
- AddNumbers es el nombre del método
- (int number1, int number2) - estos son los parámetros (más de esto adelan. Aunque los paréntesis no son opcionales.
- Dentro del método (entre los paréntesis rizados), encontrará el código actual del método. Puede ser una o más líneas de código.
Para llamar a un método, simplemente escriba su nombre seguido de paréntesis. Dentro de los paréntesis, deberías escribir los parámetros (si el método acepta alguno), como este:
AddNumbers(3, 39);
Ya que los métodos son definidos en una clase, quizá quiera llamar un método en otra clase que en la que se encuentra. Si es así, usted debe prefijar la llamada al método con el nombre del objeto, o en caso de un método estático (más de ésto adelante), el nombre de la clase. Aquí hay un ejemplo donde llamamos al método AddNumber(), el cual ha sido ubicado en otra clase llamada MathHelper:
public void DoMath()
{
MathHelper mathHelper = new MathHelper();
int result = mathHelper.AddNumbers(4, 38);
Console.WriteLine(result);
}
Tipos de retorno de Método
Hablemos de los tipos (de datos) de retorno. En los ejemplos previos, definimos un método con un entero como el tipo de retorno, pero usted es libre de retornar cualquier otra clase de tipo de datos de C#. De hecho, puede incluso declarar un método el cual no retorne nada, como lo vimos con nuestro método DoMath() arriba. Note que he sustituido int con la palabra clave void, lo cual significa que este método se supone no regresa nada. En alunos lenguajes de programación, las funciones sin tipo de retorno son referidas como procedures [procedimientos], pero en C#, estas son siempre llamadas métodos.
Debe estar consciente de que cuando declara un tipo de retorno para un método, tiene que retornar algo - de otro modo, el compilador se quejará inmediatemente:
public int AddNumbers(int number1, int number2)
{
Console.WriteLine(number1 + number2);
}
Compiler error: AddNumbers(int, int)': not all code paths return a value
Esto significa que usted necesita una (o varias) palabras reservadas return dentro de su método si este tiene un tipo de retorno declarado. Usted puede necesitar más de un return para situaciones donde tenga múltiples trayectorias posibles de código, como esto:
public int AddLargeNumbers(int number1, int number2)
{
if((number1 > 1000) && (number2 > 1000))
{
return number1 + number2;
}
return 0;
}
En este caso, necesitamos la segunda declaración de retorno también - si es omitida, el compilador se quejará, porque nuestra declaración condicional puede prevenir la primera declaración de retorno de ser alcanzada.
Resumen
Los métodos le permiten encapsular y reusar funcionalidad desde diversos lugares. Al proveer diferentes parámetros a un método, usted puede obtener diferentes resultados. Hemos usado algunos parámetros en los ejemplos anteriores, pero en el próximo artículo, cavaremos mucho más profundo en el tema de los parámetros de métodos.