Métodos parciales

24. August 2009 13:53 by Oscar.SS in Lenguajes  //  Tags:   //   Comments (0)

Si ya conoces la funcionalidad de las clases parciales introducidas en C# 2.0 rapidamente prodrás intuir que son los métodos parciales introducidos como novedad en C# 3.0. Y como ya habrás deducido, los métodos parciales trabajan en el contexto de clases parciales.

En primer lugar veremos como utilizarlos con ejemplos de código, luego hablaremos brevemente cuando utilizarlos y finalmente daremos algunas consideraciones a tener en cuenta.

Vamos a definir una clase parcial que estará implementada en dos ficheros de código diferentes. Por ejemplo, este sería el primer archivo de código:

 

public partial class SaludoPersona
{
    
//Definición del método parcial. Solo contiene la firma del método, no contiene código.  
    
partial void SaludarConNombre(string nombre);

    public void 
Saludar()
    {
        Console.WriteLine(
"Hola ");
        
SaludarConNombre("Oscar");
    
}
}

 

Y a continuación el resto del código de la clase parcial que como hemos mencionado antes, normalmente estará implementado en otro archivo de código.

 

public partial class SaludoPersona
{
    
//Implementación del método parcial. Aquí añadimos el código al método parcial antes definido.  
    
partial void SaludarConNombre(string nombre)
    {
        Console.WriteLine(nombre)
;
    
}

    
public void SaludoIngles(string nombre)
    {
        Console.WriteLine(
"Hello {0}", nombre);
    
}
}

 

Como pedemos observar en una parte del código solo tenemos la definición del método parcial, no está implementado, es decir, no tiene cuerpo. En el segundo archivo de código tenemos la implementación del método parcial. Aquí es donde se ha escrito lo que hará el método.

Supongamos que tenemos dos equipos de desarrollo en distintas ciudades o paises. A un equipo se le ordena implemantar la primera parte de la clase parcial. Este programador solo sabe que tiene que definir un método parcial en su parte de la clase y después llamarlo. No sabe, ni tiene porque saber, que hace realmente el método. Al segundo equipo de desarrollo se le encarga la implementación del método además del resto del código de su clase parcial.

¿Pero que sucede si no realizamos la implemenación del método en la segunda parte de la clase?. En este caso, el compilador eliminará la definición del método y todas las llamadas en tiempo de compilación del ensamblado final de la clase. Es decir, que no se produce un error en tiempo de ejecución porque no existirá el método realmente. Por lo tanto, la implementación del código de un método parcial no es obligatoria, es opcional.

En el simple ejemplo de antes, se puede haber decidido que no se implemente el código por el momento. Pero se prevee que será utilizado en un futuro. En consecuencia, el primer equipo no tiene que rectificar su código, porque el compilador eliminará la definición y la llamada al método parcial.

Los métodos parciales son normalmente utilizados en situaciones en los que una clase es generada automaticamente por una herramienta y está debe permitir que el programador personalize la funcionabilidad de la clase. Por este motivo la herramienta tan solo definirá los métodos parciales. Luego será el programador el que le de "caracter" al método con su código personal.

Consideraciones que debemos tener en cuenta sobre este tipo de métodos:

  • El método siempre debe devolver void.
  • Pueden tener parámetros de tipo ref, pero no de tipo out.
  • Son implícitamente private, por lo tanto no admiten modificadores de accesibilidad. 
  • Pueden tener modificadores static y unsafe. 
  • No se puede crear un delegado para un método parcial.

 

Recent Comments

Comment RSS

Month List