3.6 Funciones y librerías

Una Función  también  conocida  como  método  es  un  conjunto de  instrucciones  a las  que se les  da  un determinado  nombre de  tal  manera que sea  posible ejecutarlas  en cualquier momento sin  tenerlas  que rescribir sino usando sólo su nombre. A estas instrucciones se les denomina  cuerpo del método, y a su ejecución a través de su nombre se le denomina llamada al método.

 La ejecución de las instrucciones de un método puede producir como resultado un objeto de cualquier tipo. A este objeto se le l ama valor de retorno del método y es completamente opcional, pudiéndose escribir métodos que no devuelvan ninguno.

 La  ejecución de las  instrucciones  de un método  puede depender del  valor de unas  variables especiales denominadas parámetros del método, de manera que en función del valor que se dé a estas variables en cada l amada la ejecución del método  se pueda realizar de una u otra forma y podrá producir uno u otro valor de retorno.

 Al conjunto formado por el nombre de un método y el número y tipo de sus parámetros se le conoce como signatura del método. La signatura de un método es lo que verdaderamente lo identifica, de modo que es posible definir en  un mismo tipo  varios métodos con  idéntico nombre siempre y cuando tengan distintos parámetros. Cuando esto ocurre se dice que el método que tiene ese nombre está sobrecargado.

 Para definir un método hay que indicar tanto cuáles son las instrucciones que forman su cuerpo como cuál es el nombre que se le dará, cuál es el tipo de objeto que puede devolver y cuáles son los parámetros que puede tomar. Esto se indica definiéndolo así:

<tipoRetorno>           <nombreMétodo>(<parámetros>)

{

 <cuerpo>

}

 En <tipoRetorno>  se indica cuál  es  el  tipo  de dato del  objeto que el  método  devuelve, y  si  no  devuelve ninguno se ha de escribir void en su lugar.

 Como nombre del método se puede poner en <nombreMétodo> cualquier identificador válido.

Aunque es posible escribir métodos que no tomen parámetros, si un método los tiene se ha de indicar en <parámetros> cuál es el nombre y tipo de cada uno, separándolos con comas si son más de uno.

 Para l amar un método se puede usar la siguiente sintaxis:

 <nombreMétodo>(<valoresParámetros>)

 En C# se admiten cuatro tipos de parámetros:

  • Parámetros de entrada
  • Parámetros de salida
  • Parámetros por referencia
  • Parámetros de número indefinido.

 Un parámetro de entrada recibe una copia del valor que almacenaría una variable del tipo del objeto que se le pase. Por tanto, si  el  objeto es  de  un tipo  valor se le pasará una  copia del  objeto  y  cualquier modificación que se haga al parámetro dentro del cuerpo del método no afectará al objeto original sino a su copia, para el o se sigue la siguiente sintaxis:

 <tipoParámetro> <nombreParámetro>

 En las  l amadas  a  métodos  se expresan los  valores  que  se deseen  dar  a  este tipo de parámetros indicando simplemente el valor deseado.

 Un  parámetro  de  salida  se diferencia de  uno  de  entrada  en  que  todo cambio que se  le   realice en el código del método al que pertenece afectará al objeto que se le pase al llamar dicho método tanto si éste es de un tipo por valor como si es de un tipo referencia. Esto se debe a que lo que a estos parámetros se les pasa es siempre una referencia al valor que almacenaría  una variable del tipo del objeto que se les pase.

 Los  parámetros  de  salida se definen de forma parecida  a los  parámetros  de  entrada  pero se les  ha de añadir la palabra reservada out, de esta manera:

 out <tipoParámetro> <nombreParámetro>

 Al llamar a un método que tome parámetros de este tipo también se ha preceder el valor especificado para estos  parámetros  del  modificador   out. Una utilidad de  esto es  facilitar la legibilidad  de las  llamadas  a métodos.

 Un parámetro por referencia es similar a un parámetro de salida sólo que no es obligatorio modificarlo dentro del método al que pertenece, por lo que será obligatorio pasarle una variable inicializada ya que no se garantiza su inicialización en el método.

 Los  parámetros  por  referencia se definen  igual  que  los  parámetros  de  salida  pero sustituyendo el modificador out  por  el  modificador          ref. Del  mismo  modo, al  pasar valores  a parámetros  por  referencia también hay que precederlos del ref.

Deja un comentario