This article has been localized into Spanish by the community.
Funciones
Una función permite encapsular una parte del código y llamarlo desde otros sitios en su código. Podrías estar muy pronto en una situación en la cual necesites repetir la misma pieza de código, en varios lugares, y aquí es donde usamos las funciones. En C# se declaran básicamente así:
<visibility> <return type> <name>(<parameters>)
{
<function code>
}
Para llamar a una función, simplemente escriba su nombre y abra paréntesis, luego los parámetros, si hubiera alguno, y cierre el paréntesis, así:
DoStuff();
Aquí tenemos un ejemplo de nuestra función DoStuff():
public void DoStuff()
{
Console.WriteLine("I'm doing something...");
}
La primera parte, pública, es la visibilidad y es opcional. Si no es definida la función entonces será privada (private). Más adelante se hablará sobre el tema. Luego el el tipo de respuesta/tipo que regresará (bool / int / etc). Podria ser cualquier respuesta/tipo válido en C#, o como ya lo hicimos aqui, void(no retorna nada). Void significa que esta funcion no regresa o tiene como respuesta absolutamente nada. Igual, esta funcion carece de parametros, como se observa del vacio entre parentesis, lo cual está siento un poco aburrido, cambiemos eso.
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
Hemos cambiado casi todo. La función ahora devuelve un entero (int), recibe dos parámetros (ambos enteros) y, en lugar de devolver cualquier cosa, hace un cálculo y devuelve el resultado. Esto significa que podemos sumar dos números en varios lugares de nuestro código, simplemente llamando a esta función, en lugar de estar escribiendo el código para la operación de cálculo cada vez que lo necesitemos. Si bien no ahorramos mucho tiempo y esfuerzo con este pequeño ejemplo, cuanto más uses C#, más te irá gustando usar funciones. Esta función se llama de esta manera:
int result = AddNumbers(10, 5);
Console.WriteLine(result);
Como fue mencionado, esta funcion ahora regresa algo, y asi es porque nosotros dijimos en C# que lo hiciera. Cuando la funcion declara algo mas que vacio como tipo de retorno, nosotros nos estamos forzando a retornar algo. Puedes tratar removiendo la linea retorno del ejemplo de arriba y veras al compilador reclamar
'AddNumbers(int, int)': no todas las rutas de código devuelven un valor
El compilador nos esta recordando que tenemos una función que no devuelve algo, aunque la hicimos. Y el compilador es muy inteligente! En vez de remover la linea, intente algo como esto:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
}
'AddNumber(int, int)': No todos los senderos del codigo regresan un valor El compilador esta recordandonos que nosotros tenemos una funcion que no regresa nada o no resulta en nada aunque lo prometimos. Y el compilador es bien inteligente!. En lugar de remover la linea, trata algo como esto:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
if(result > 10)
{
return result;
}
return 0;
}
Esto arreglara el problema que creamos y mostrara que podemos tener mas de una respuesta para nuestra funcion. Tan pronto como una respuesta es alcanzada, la funcion no se usa y ningun codigo adicional es ejecutado. En este caso, significa que tan pronto como el resultado es superior a 10 la respuesta "0" no se logra
This article has been deprecated!
This article has been re-organized and updated to better match the rest of the tutorial.
We suggest that you read this article instead: Methods (functions)