Definición y Uso:
Una función es un bloque de código que realiza x operaciones y puede devolver o no algún valor.
La principal usabilidad de las funciones y los métodos es aclarar y resusar la programación. Si tuviéramos todo el código de una apicación del tirón sería muy difcícil de leer y de mantener.
Por ejemplo si tenemos un programa en el que hacemos una operación de sumar dos números y luego mostrárla por pantalla, podríamos hacer una función a la que le diéramos los 2 números y ya nos hiciera ella el resto.
La diferencia entre un método y una función es simplemente que los métodos están dentro de las clases, es decir, a las funciones dentro de las clases les llamamos métodos.
Ya que C# sólo admite funciones dentro de clases, todo lo que nos encontramos son métodos.
Declaración:
Sintaxis:
[private/protected/public/internal] [virtual/override/new] [static]
returnType NameOfFunction(
[ref/out] typeParam1 nameParam1,
…
[ref/out] typeParamN nameParamN)
{
// Code
}
Se puede especificar la visibilidad del método (privada/protegida/pública), si no se especifica, los métodos son privados.
Si el keyword static se declara quiere decir que es un método estático. Estos métodos pueden llamarse sin necesidad de tener un objeto de la clase a la que pertencen, aunque no podrán acceder tampoco a los miembros no estáticos de la clase (sean métodos, atributos, propiedades, etc)
También se puede especificar si un método es virtual, sobrecargado o se debe ignorar la virtualidad.
En C# hay que especificar un valor de retorno, aunque si el método no devuelve nada se especifica con el valor void. Si el valor especificado es distinto de void es obligatorio devolver algo en la función (usando return).
Hay que especificar un nombre para los métodos, normalmente es una buena idea que el nombre sea explicatorio de lo que hace la función. También se recomienda escribir un comentario sobre el método explicando su funcionamiento.
Se pueden incluir tantos parámeteros como se quiera (e incluso no poner parámetro). Todos los parámetros especifican primero el tipo y luego el nombre que tienen dentro de la función.
Se puede especificar algunos atributos a los parámetros que se pasan. Vamos a ver 2 posibles valores para estos atributos:
ref: es usado para pasar un parámetro por referencia. Para los tipos por referencia esto significa que se pueden asignar objetos a las variables pasadas. Para los tipos por valor, lo que significa es que pueden ser modificados dentro de la función.
out: es como ref (pasa el valor por referencia) pero además fuerza al método a inicializar el valor antes del final de la función (para cualquier posible punto de retorno).
Como llamar a una función / método en C#:
Sintaxis:
[val = ]MyFunc([ref/out] param1, [ref/out] param2,…);
[val = ]myObj.MyFunc([ref/out] param1,…);
[val = ]MyClass.MyFunc([ref/out] param1,…);
Ejemplos:
Declaración:
//Funcion que devuelve la suma de los parámetros que le pasamos
public int suma (int operando1, int operando2)
{
int resultado = operando1 + operando2;
return resultado;
}
Utilización:
//Mostramos por pantalla el resultado de la suma de dos números
Console.WriteLine("El resultado de la suma es: " + suma(2,4).ToString());
//Esto tendría como resultado en la consola
//El resultado de la suma es: 6
