2009-07-04 11 views
13

¿Cómo programo una clase parcial en C# en múltiples archivos y en diferentes espacios de nombres?C# clase parcial

+32

Alguien más encontrar divertido que un usuario llamado "parcial" está preguntando por las clases parciales? –

+1

¿Por qué querrías poder hacer esto? ¿Qué problema has encontrado que piensas que tal característica te ayudaría a resolverlo? – jason

+0

Es solo una coincidencia. He estado en stackoverflow por un par de semanas. – Partial

Respuesta

32

No puede. De here ...

El uso de la palabra clave parcial indica que otras partes de la clase, estructura o interfaz pueden definirse dentro del espacio de nombres

deben estar en el mismo espacio de nombres.

Por comentario: Aquí está an article que describe la definición de un espacio de nombres para cruzar varios conjuntos. Desde allí ...

Estrictamente hablando, los ensamblajes y los espacios de nombres son ortogonales. Eso es , puede declarar miembros de un espacio de nombre único en múltiples ensamblados , o declarar múltiples espacios de nombres en un único ensamblaje.

+0

¿Puede tener el mismo espacio de nombres en varios archivos? – Partial

+4

Sí, puede ... sobre múltiples archivos .cs en el mismo ensamblaje y en varios ensamblajes también. –

+0

Votante a la baja tiene una opinión diferente? –

3

No puede. Una clase parcial significa exactamente eso: una sola clase dividida en varios archivos. Eso también significa que todos los archivos en los que está compuesta esta clase parcial deben tener el mismo espacio de nombres. De lo contrario, ya no sería la misma clase.

+0

¿Por qué el voto a favor? Esto es correcto, especialmente el bit "De lo contrario ya no sería la misma clase". –

11

No puede tener una clase parcial en varios espacios de nombres. Las clases del mismo nombre en diferentes namespaces son por definición diferentes clases.

4

Una clase parcial (como cualquier otra clase) necesita vivir en un solo espacio de nombres (de lo contrario es otra clase).

para dividirlo entre los diferentes archivos sólo tiene que utilizar la palabra clave parcial después de la palabra clave de acceso:

// this bit of the class in a file 
public partial class Employee 
{ 
    public void DoWork() 
    { 
    } 
} 

//this bit in another file 
public partial class Employee 
{ 
    public void GoToLunch() 
    { 
    } 
} 
Cuestiones relacionadas