Partial (Visual Basic)
Indica che una dichiarazione di tipo è una definizione parziale del tipo.
Si può dividere la definizione di un tipo tra più dichiarazioni mediante la parola chiave Partial
. Si può usare il numero di dichiarazioni parziali desiderato, in un numero qualsiasi di file di origine differenti. Tutte le dichiarazioni, tuttavia, devono trovarsi nello stesso assembly e nello stesso spazio dei nomi.
Nota
Visual Basic supporta i metodi parziali, che in genere vengono implementati nelle classi parziali. Per altre informazioni, vedere Metodi parziali e Istruzione Sub.
Sintassi
[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ variabledeclarations ]
[ proceduredeclarations ]
{ End Class | End Structure }
Parti
Termine | Definizione |
---|---|
attrlist |
Facoltativo. Elenco degli attributi applicabili al tipo. È necessario racchiudere l'elenco degli attributi tra parentesi angolari (< > ). |
accessmodifier |
Facoltativo. Specifica il tipo di codice che può accedere al tipo. Vedere Access levels in Visual Basic. |
Shadows |
Facoltativo. Vedere Shadows. |
MustInherit |
Facoltativo. Vedere MustInherit. |
NotInheritable |
Facoltativo. Vedere NotInheritable. |
name |
Obbligatorio. Nome del tipo. Deve corrispondere al nome definito in tutte le altre dichiarazioni parziali dello stesso tipo. |
Of |
Facoltativo. Specifica che si tratta di un tipo generico. Vedere Tipi generici in Visual Basic. |
typelist |
Obbligatorio se si usa Of. Vedere Elenco tipi. |
Inherits |
Facoltativo. Vedere Istruzione Inherits. |
classname |
Obbligatorio se si usa Inherits . Nome della classe o dell'interfaccia da cui deriva la classe. |
Implements |
Facoltativo. Vedere Istruzione Implements. |
interfacenames |
Obbligatorio se si usa Implements . Nomi delle interfacce implementate dal tipo. |
variabledeclarations |
Facoltativo. Istruzioni che dichiarano variabili ed eventi aggiuntivi per il tipo. |
proceduredeclarations |
Facoltativo. Istruzioni che dichiarano e definiscono routine aggiuntive per il tipo. |
End Class oppure End Structure |
Termina questa definizione Class o Structure parziale. |
Osservazioni:
Visual Basic usa definizioni di classi parziali per separare il codice generato dal codice creato dall'utente in file di origine distinti. Ad esempio, Progettazione Windows Form definisce classi parziali per controlli come Form. In questi controlli il codice generato non deve essere modificato.
Durante la creazione di un tipo parziale vengono applicate tutte le regole per la creazione delle classi, delle strutture, delle interfacce e dei moduli, ad esempio quelle relative all'uso dei modificatori e all'ereditarietà.
Consigli per iniziare
In condizioni normali, non è consigliabile suddividere lo sviluppo di un singolo tipo in due o più dichiarazioni. Pertanto, nella maggior parte dei casi non occorre specificare la parola chiave
Partial
.Per migliorare la leggibilità, ogni dichiarazione parziale di un tipo deve includere la parola chiave
Partial
. Il compilatore consente che la parola chiave venga omessa al massimo in una dichiarazione parziale. Se viene omessa in due o più dichiarazioni, viene segnalato un errore.
Comportamento
Unione delle dichiarazioni. Il compilatore considera il tipo come l'unione di tutte le relative dichiarazioni parziali. Ogni modificatore di ciascuna definizione parziale si applica all'intero tipo e ogni membro di ciascuna definizione parziale è disponibile per l'intero tipo.
Promozione tipo non consentita per i tipi parziali nei moduli. Se una definizione parziale si trova all'interno di un modulo, l'effetto della promozione tipo di tale tipo viene automaticamente annullato. In questo caso, un set di definizioni parziali può generare risultati imprevisti e persino errori del compilatore. Per altre informazioni, vedere Promozione tipo.
Il compilatore unisce le definizioni parziali solo se i relativi percorsi completi sono identici.
È possibile usare la parola chiave Partial
nei contesti seguenti:
Esempio
L'esempio seguente suddivide la definizione della classe sampleClass
in due dichiarazioni, ognuna delle quali definisce una routine Sub
differente.
Partial Public Class sampleClass
Public Sub sub1()
End Sub
End Class
Partial Public Class sampleClass
Public Sub sub2()
End Sub
End Class
Le due definizioni parziali nell'esempio precedente possono trovarsi nello stesso file di origine o in due file di origine differenti.