C # Partial Class y Partial Method (con ejemplos)

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 partialpalabra clave.

Ejemplo 1:

Tenemos un proyecto llamado así HeightWeightInfoque muestra la altura y el peso.

Tenemos un archivo denominado como File1.cscon 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 partialpalabra clave ayuda a combinar todos los atributos de una clase definida en varios archivos para que funcionen como una sola clase.

Lugares donde partialse puede usar la clase:

  1. 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.
  2. 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 partialpalabra 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 partialmodificador 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 Cardefinida en la file1.csque 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.csque 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:

  1. La definición como en file1.cs.
  2. 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.

Articulos interesantes...