En este artículo aprenderemos cómo y por qué se implementan clases parciales y métodos parciales en C #.
Hay muchas situaciones en las que es posible que deba dividir una definición de clase, como cuando se trabaja en proyectos a gran escala, es posible que varios desarrolladores y programadores deban trabajar en la misma clase al mismo tiempo. En este caso, podemos usar una función llamada Clase parcial .
Introducción a la clase parcial
Mientras programamos en C # (o OOP), podemos dividir la definición de una clase en dos o más archivos fuente. Los archivos fuente contienen una sección de la definición de clase y todas las partes se combinan cuando se compila la aplicación. Para dividir una definición de clase, necesitamos usar la partial
palabra clave.
Ejemplo 1:
Tenemos un proyecto llamado así HeightWeightInfo
que muestra la altura y el peso.
Tenemos un archivo denominado como File1.cs
con una clase parcial denominada Registro. Tiene dos variables enteras h & w y un método / constructor llamado Record que asigna los valores de h & w.
namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )
Aquí hay otro archivo llamado File2.cs con el mismo registro de clase parcial que solo tiene el método PrintRecord. Este método mostrará los valores de h & w.
namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )
Aquí ahora podemos ver el método principal del proyecto:
namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )
Aquí tenemos el objeto de la clase Record como myRecord que pasa los valores de los parámetros como 10 y 15 ah yw respectivamente al método definido en File1.cs
.
El método PrintRecord es llamado por el objeto myRecord que está definido en File2.cs
.
Esto muestra que la partial
palabra clave ayuda a combinar todos los atributos de una clase definida en varios archivos para que funcionen como una sola clase.
Lugares donde partial
se puede usar la clase:
- Mientras trabaja en proyectos más grandes con más de un desarrollador, ayuda a los desarrolladores a trabajar en la misma clase simultáneamente.
- Los códigos se pueden agregar o modificar a la clase sin volver a crear archivos fuente que son generados automáticamente por el IDE (es decir, Visual Studio).
Cosas para recordar sobre la clase parcial
La partial
palabra clave especifica que otras partes de la clase se pueden definir en el espacio de nombres. Es obligatorio usar la palabra clave parcial si estamos tratando de convertir una clase en parcial. Todas las partes de la clase deben estar en el mismo espacio de nombres y disponibles en el momento de la compilación para formar el tipo final. Todas las partes deben tener el mismo modificador de acceso, es decir, privado, público, etc.
- Si alguna parte se declara abstracta, entonces el tipo completo se considera abstracto.
- Si alguna parte se declara sellada, entonces todo el tipo se considera sellado.
- Si alguna parte declara un tipo base, entonces todo el tipo hereda esa clase.
- Cualquier miembro de clase declarado en una definición parcial está disponible para todas las demás partes.
- Todas las partes de una clase parcial deben estar en el mismo espacio de nombres.
** Nota: el partial
modificador no está disponible en declaraciones de delegado o enumeración
Intrusión a métodos parciales
Una clase parcial puede contener un método parcial. Una parte de la clase contiene la firma del método. Se puede definir una implementación opcional en la misma parte o en otra parte. Si no se proporciona la implementación, el método y todas las llamadas se eliminan en tiempo de compilación.
Ejemplo 2:
Tomemos un ejemplo como una clase parcial Car
definida en la file1.cs
que tiene tres métodos InitializeCar (), BuildRim () y BuildWheels (). Entre esos métodos, InitializeCar se define como partial
.
public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )
Y tenemos otro archivo llamado como file2.cs
que tiene dos métodos BuildEngine e InitializeCar. El método InitializeCar es un método parcial que también se define en file1.cs
.
public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )
Una declaración de método parcial consta de dos partes:
- La definición como en
file1.cs
. - La implementación como en
file2.cs
.
Pueden estar en partes separadas de la clase parcial o en la misma parte.
Cosas para recordar sobre el método parcial
partial
palabra clave.- tipo de retorno
void
. - implícitamente
private
. - y no puede ser
virtual
.