2009-07-04 9 views
13

Comment programmer une classe partielle en C# dans plusieurs fichiers et dans différents espaces de noms?C# classe partielle

+32

Toute personne autre trouve amusant qu'un utilisateur nommé « partielle » demande sur des classes partielles? –

+1

Pourquoi voudriez-vous pouvoir faire ceci? Quel problème avez-vous rencontré que vous pensez qu'une telle fonctionnalité vous aiderait à résoudre? – jason

+0

C'est vraiment juste une coïncidence. Je suis sur stackoverflow depuis quelques semaines. – Partial

Répondre

32

Vous ne pouvez pas. De here ...

En utilisant le mot-clé partielle indique que d'autres parties de la classe, struct, ou de l'interface peuvent être définis dans l'espace de noms

doit être dans le même espace de noms. Par commentaire: Voici an article qui traite de la définition d'un espace de noms avec plusieurs assemblages croisés. À partir de là ...

Strictement parlant, les assemblages et les espaces de noms sont orthogonaux. Que est, vous pouvez déclarer des membres d'un espace de noms unique sur plusieurs assemblys ou déclarer plusieurs espaces de noms dans un assembly unique.

+0

Pouvez-vous avoir le même espace de noms sur plusieurs fichiers? – Partial

+4

Oui, vous pouvez ... sur plusieurs fichiers .cs dans le même assemblage et sur plusieurs assemblages. –

+0

Down-électeur a une opinion différente? –

3

Vous ne pouvez pas. Une classe partielle signifie simplement: Une seule classe divisée en plusieurs fichiers. Cela signifie également que tous les fichiers de cette classe partielle doivent avoir le même espace de noms. Sinon, ce ne serait plus la même classe.

+0

Pourquoi la downvote? C'est correct, en particulier le bit "Sinon ce ne serait plus la même classe". –

11

Vous ne pouvez pas avoir une classe partielle dans plusieurs espaces de noms. Les classes du même nom dans différents namespaces sont par définition différentes classes.

4

Une classe partielle (comme toute autre classe) doit vivre dans un seul espace de noms (sinon c'est une autre classe).

Pour diviser entre différents fichiers simplement utiliser le mot-clé partielle après le mot-clé d'accès:

// 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() 
    { 
    } 
} 
Questions connexes