Introducción a C#
Por Nacho Cabanes, versión 0.93 de 16-abr-2010


(Nota: Estás viendo una versión del curso antigua, creada en 2009. Es recomendable que sigas la versión 2015, mucho más actualizada, con contenidos más detallados, más ejemplos y más ejercicios propuestos)

5.3. Parámetros de una función

Es muy frecuente que nos interese además indicarle a nuestra función ciertos datos especiales con los que queremos que trabaje. Por ejemplo, si escribimos en pantalla números reales con frecuencia, nos puede resultar útil que nos los muestre con el formato que nos interese. Lo podríamos hacer así:

  public static void escribeNumeroReal( float n ) 
  {
    Console.WriteLine( n.ToString("#.###") );
  }
 

Y esta función se podría usar desde el cuerpo de nuestro programa así:

  escribeNumeroReal(2.3f);

(recordemos que el sufijo "f" es para indicar al compilador que trate ese número como un "float", porque de lo contrario, al ver que tiene cifras decimales, lo tomaría como "double", que permite mayor precisión... pero a cambio nosotros tendríamos un mensaje de error en nuestro programa, diciendo que estamos dando un dato "double" a una función que espera un "float").

El programa completo podría quedar así:

/*---------------------------*/
/*  Ejemplo en C# nº 48:     */
/*  ejemplo48.cs             */
/*                           */
/*  Funcion                  */
/*    "escribeNumeroReal"    */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo48
{
 
  public static void escribeNumeroReal( float n ) 
  {
    Console.WriteLine( n.ToString("#.###") );
  }
 
  public static void Main()
  {
    float x;
 
    x= 5.1f;
    Console.WriteLine("El primer numero real es: ");
    escribeNumeroReal(x);
    Console.WriteLine(" y otro distinto es: ");
    escribeNumeroReal(2.3f);
  }
 
}
 

Estos datos adicionales que indicamos a la función es lo que llamaremos sus "parámetros". Como se ve en el ejemplo, tenemos que indicar un nombre para cada parámetro (puede haber varios) y el tipo de datos que corresponde a ese parámetro. Si hay más de un parámetro, deberemos indicar el tipo y el nombre para cada uno de ellos, y separarlos entre comas:

public static void sumar ( int x, int y ) {
  ...
}
 

5.4. Valor devuelto por una función. El valor "void".

Cuando queremos dejar claro que una función no tiene que devolver ningún valor, podemos hacerlo indicando al principio que el tipo de datos va a ser "void" (nulo), como hacíamos hasta ahora con "Main" y como hicimos con nuestra función "saludar".

Pero eso no es lo que ocurre con las funciones matemáticas que estamos acostumbrados a manejar: sí devuelven un valor, el resultado de una operación.

De igual modo, para nosotros también será habitual que queramos que nuestra función realice una serie de cálculos y nos "devuelva" (return, en inglés) el resultado de esos cálculos, para poderlo usar desde cualquier otra parte de nuestro programa. Por ejemplo, podríamos crear una función para elevar un número entero al cuadrado así:

  public static int cuadrado ( int n ) 
  {
    return n*n;
  }
 

y podríamos usar el resultado de esa función como si se tratara de un número o de una variable, así:

  resultado = cuadrado( 5 );

Un programa más detallado de ejemplo podría ser:

/*---------------------------*/
/*  Ejemplo en C# nº 49:     */
/*  ejemplo49.cs             */
/*                           */
/*  Funcion "cuadrado"       */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo49
{
 
  public static int cuadrado ( int n ) 
  {
    return n*n;
  }
 
 
  public static void Main()
  {
    int numero;
    int resultado;
 
    numero= 5;
    resultado = cuadrado(numero);
    Console.WriteLine("El cuadrado del numero {0} es {1}", 
      numero, resultado);
    Console.WriteLine(" y el de 3 es {0}", cuadrado(3));
  }
 
}
 

Podemos hacer una función que nos diga cual es el mayor de dos números reales así:

 
  public static float mayor ( float n1, float n2 ) 
  {
    if (n1 > n2)
      return n1;
    else
      return n2;
  }
 

Ejercicios propuestos: