2009-07-04 3 views
13

Wie programmiere ich eine partielle Klasse in C# in mehreren Dateien und in verschiedenen Namespaces?C# Teilklasse

+32

sonst jemand finde es amüsant, dass ein Benutzer mit dem Namen „Partial“ wird über partielle Klassen zu fragen? –

+1

Warum möchten Sie das können? Auf welches Problem stoßen Sie, dass Sie denken, dass eine solche Funktion Ihnen helfen würde zu lösen? – jason

+0

Es ist wirklich nur ein Zufall. Ich bin seit einigen Wochen auf Stackoverflow. – Partial

Antwort

32

Sie können nicht. Von here ...

das partiellen Schlüsselwort gibt an , die anderen Teile der Klasse, Struktur oder Schnittstelle kann im Namespace

sein muss im gleichen Namensraum definiert werden.

Per Kommentar: Hier ist an article, die ein Namespace Quer mehrere Baugruppen bespricht definieren. Von dort ...

Genau genommen sind Baugruppen und Namespaces orthogonal. Die ist, können Sie die Mitglieder eines einzigen Namespace über mehr Baugruppen deklarieren oder mehr Namespaces in einer einzigen Baugruppe erklären.

+0

Können Sie den gleichen Namespace über mehrere Dateien haben? – Partial

+4

Ja, Sie können ... über mehrere .cs-Dateien in derselben Baugruppe und über mehrere Baugruppen hinweg. –

+0

Down-Voter hat eine andere Meinung? –

3

Sie können nicht. Eine partielle Klasse bedeutet genau das: Eine einzelne Klasse in mehrere Dateien aufgeteilt. Das bedeutet auch, dass alle Dateien, aus denen diese Teilklasse besteht, denselben Namespace haben müssen. Sonst wäre es nicht mehr dieselbe Klasse.

+0

Warum der Downvote? Das ist richtig, besonders das Bit "Sonst wäre es nicht mehr dieselbe Klasse". –

11

Sie können nicht eine partielle Klasse in mehreren Namensräumen haben. Klassen mit dem gleichen Namen in verschiedenen namespaces sind per Definition verschiedenen Klassen.

4

Eine Teilklasse (wie jede andere Klasse) muss in einer einzigen Namensraum (sonst seine andere Klasse) leben.

Um es zwischen den verschiedenen Dateien aufgeteilt nur die partielle Schlüsselwort nach dem Schlüsselwort Zugang zu verwenden:

// 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() 
    { 
    } 
} 
Verwandte Themen