2009-03-04 19 views

Respuesta

16

La palabra clave parcial se utiliza normalmente en las utilidades de generación de código para permitir a los desarrolladores agregar funcionalidad adicional al código generado sin temor a que ese código se borre si el código se genera nuevamente.

Con C# 3, la palabra clave parcial se puede aplicar a los métodos para permitir que los usuarios del código generado rellenen los espacios en blanco que dejó el generador. El diseñador de Linq To Sql, por ejemplo, proporciona métodos parciales que le permiten agregar lógica a las clases a las que llamará el marco si se implementan. El beneficio aquí es que el compilador de C# eliminará completamente los métodos parciales no implementados, por lo que no hay un rendimiento que llegue a en total por no implementarlos.

Las clases parciales también se pueden utilizar para organizar clases muy grandes en archivos de códigos separados, aunque este tipo de uso suele ser una señal de que sus clases son demasiado grandes y están asumiendo demasiadas responsabilidades.

1

Lo estoy usando para particionar clases auxiliares donde algunos métodos necesitan muchos códigos. Esta es una forma bastante sencilla de conservar la legibilidad ya que cada archivo solo trata con una parte de la funcionalidad de la clase.

0

El diseñador de LINQ to SQL lo usa ampliamente para dividir comportamientos personalizados (métodos parciales) fuera de la clase de asignación.
En resumen, su objetivo principal es para generadores de código.
Espero que esto ayude.

1

En VB puede usarlo para separar el código "normal" del código que necesita encuadernación tardía mediante "Option Strict Off".

En C# solo lo uso para clases inusualmente grandes.

2

El mejor uso para la palabra clave parcial que puedo pensar es en clases anidadas. Sin la palabra clave parcial, todas las clases anidadas deben ir en el mismo archivo de código que la clase contenedora.

+0

¡Oo, excelente idea! Nunca se me ocurrió hacer esto. –

0

Utilizo clases y métodos parciales todo el tiempo con Linq2Sql. De lo contrario, nunca lo he usado para nada más que las clases UI/Code-behind.

Una de las mejores cosas que me gustan de las clases parciales en linq2sql es que puede hacer que la clase parcial herede una interfaz y mapeará la interfaz a la clase generada. Esto es excelente si tiene más de un proveedor de datos y aún desea usar las mismas interfaces para todas las clases de acceso a datos.

2

Un uso que he encontrado es para el código que puede que no desee que exista en el código de producción, como el seguimiento o el código de registro de desarrollo. Podrías colocar esto en la clase parcial y luego, cuando realices una compilación de producción, simplemente compilas sin esos parciales incluidos y el compilador eliminará automáticamente cualquier llamada a los parciales que fueron excluidos.

+0

Los métodos parciales probablemente funcionen incluso mejor para ese caso de uso particular. – JasonTrue

+0

Otra buena idea - +1 –

+0

@JasonTrue - Sí, los métodos parciales también funcionarían muy bien, solo use uno u otro dependiendo de las necesidades de la situación. –

0

WPF usa clases parciales extensamente. El XAML genera una clase parcial que puede agregar.

0

Uso las clases parciales para reducir el dolor de fusión con el control de versiones cuando sé que tendríamos varios desarrolladores trabajando en una clase. Por ejemplo, a menudo tenemos nuestra clase DAL dividida en varios archivos de clases parciales. Si no los coloca en archivos diferentes, es fácil obtener conflictos de fusión que tardan un poco en arreglarse cuando se registran en la versión ctl.

Cuando el desarrollo se vuelve menos caótico a medida que la clase se acerca a completarse, nos deshacemos de los archivos parciales. Simplemente lo usamos para hacer que los problemas de VC/Mulit-developer sean más fáciles