2011-02-15 23 views
6

Soy estudiante y no sé qué es partial class. El siguiente código pertenece a una clase parcialCreando clases parciales en C#

he creado de forma automática la clase parcial:

public partial class EGUI: Form 
{  
    private OleDbConnection dbConn; // Connectionn object 
    private OleDbCommand dbCmd;  // Command object 
    private OleDbDataReader dbReader; // Data Reader object 
    private Emp Edetails; 
    private string sConnection; 
    private string sql; 
} 

Respuesta

2

En primer lugar, esto: http://msdn.microsoft.com/en-us/library/wa80x488(v=vs.80).aspx

En segundo lugar, permite que una manera para que un programador para recoger piezas específicas de código en dos archivos diferentes. Un buen ejemplo de esto es cuando se crea un ASP.NET WebForm. El WebForm tendrá un archivo para los manejadores de eventos y tal (Button_Click, etc.) y luego tendrá un archivo adicional que contiene las declaraciones de los controles ASP.NET que está utilizando en su página. Esto mantiene el código que CARE en un archivo y el material más obvio 'autogenerado' en otro.

corrígeme si me equivoco, pero también creo que las clases parciales pueden permitirle hacer algo similar a 'mono parches' porque expone la clase de tal manera que se pueden agregar nuevos métodos, etc y tienen las variables acceso a las clases miembros privados.

+1

Sí, y es utilizado por ASP.NET exactamente de esta manera, con los archivos .Designer. Y luego está el "truco" de agregar una clase base (si aún no está definida) en uno de los archivos "parciales", o agregar una interfaz o dos como tipo base ... y/o agregar el resumen palabra clave. Incluso hay otro truco ... El método "vacío". Algo así como: void MyMethod(); puede llamarlo desde el archivo parcial y si no está definido en los demás archivos, simplemente se salta. – xanatos

2

Un partial class es una clase cuya definición se podría dividir entre los diferentes archivos dentro del mismo proyecto/montaje. Por ejemplo, Visual Studio Forms Designer usa esta funcionalidad ampliamente para dividir los controles de tiempo de diseño que ha colocado en el formulario del código real, y una vez que se compila el proyecto, los dos archivos fuente se fusionan para emitir la clase resultante.

5

Aquí está la respuesta definitiva: http://msdn.microsoft.com/en-us/library/wa80x488(v=vs.80).aspx

Es posible dividir la definición de una clase o una estructura o una interfaz lo largo de dos o más archivos de origen. Cada archivo fuente contiene una sección de la definición de clase, y todas las partes se combinan cuando se compila la aplicación .