2010-08-25 16 views
9

È possibile creare un file di classe partial per una classe che è sealed?Classe parziale sigillata

+12

Hai provato? –

+1

Apri Visual Studio e provalo. –

+0

Poiché non esiste un collegamento tra la partizione delle classi in più file e l'ereditarietà, la mia ipotesi è sì ma, come dice Jay, provatelo. –

risposta

4

Sembrava compilare bene.

sealed partial class Class1 
{ 
    public void MyMethod() { } 
} 

partial class Class1 
{ 
    public void MyMethod2() { } 
} 
+0

Penso che questa risposta sia più informativa perché la firma della classe sarà unita alla compilazione. Quindi è sufficiente specificare solo una parte come sigillata. E per determinare se la classe è sigillata, dovrai controllare tutte le sue parti. – Maxim

1

Sì. Le classi sigillate bloccano solo l'ereditarietà. Le classi parziali non sono ereditate; vengono uniti a una classe non appena vengono compilati.

21

La parola chiave sealed indica semplicemente che la classe non può essere ereditata. Non ha alcun impatto sul modo in cui il codice della classe è strutturato diversamente. La parola chiave partial consente semplicemente di dividere una classe tra più file.

Nell'esempio seguente, la classe A viene compilata correttamente. B non viene compilato perché A è sigillato e l'ereditarietà non è consentita.

public sealed partial class A { private int x; } 

public sealed partial class A { private int y; } 

public class B : A { } 
+0

Cosa succede se nei file divisi una definizione di classe è contrassegnata come parziale e l'altra no? Cosa ha la precedenza? –

+2

Non c'è precedenza. Otterrai un errore del compilatore. –

1

Sì, è possibile effettuare una classe parziale sigillata.

Es: Public Sealed Classe parziale Dipendente

Problemi correlati