Condividi tramite


Partial (Visual Basic)

Indica che una dichiarazione di tipo è una definizione parziale del tipo.

È possibile dividere la definizione di un tipo tra più dichiarazioni usando la Partial parola chiave . È possibile usare tutte le dichiarazioni parziali desiderate, in tutti i file di origine diversi desiderati. Tuttavia, tutte le dichiarazioni devono trovarsi nello stesso assembly e nello stesso spazio dei nomi.

Annotazioni

Visual Basic supporta metodi parziali, che vengono in genere implementati in classi parziali. Per altre informazioni, vedere Metodi parziali e istruzione secondaria.

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 Opzionale. Elenco di attributi applicabili a questo tipo. È necessario racchiudere l'elenco attributi tra parentesi angolari (< >).
accessmodifier Opzionale. Specifica il codice che può accedere a questo tipo. Vedere Livelli di accesso in Visual Basic.
Shadows Opzionale. Vedi Ombre.
MustInherit Opzionale. Vedere MustInherit.
NotInheritable Opzionale. Vedere NotInheritable.
name Obbligatorio. Nome di questo tipo. Deve corrispondere al nome definito in tutte le altre dichiarazioni parziali dello stesso tipo.
Of Opzionale. Specifica che si tratta di un tipo generico. Vedere Tipi generici in Visual Basic.
typelist Obbligatorio se si usa Of. Vedere Elenco dei tipi.
Inherits Opzionale. Vedere L'istruzione Inherits.
classname Obbligatorio se si usa Inherits. Nome della classe o dell'interfaccia da cui deriva questa classe.
Implements Opzionale. Vedere l'istruzione Implements.
interfacenames Obbligatorio se si usa Implements. I nomi delle interfacce implementate da questo tipo.
variabledeclarations Opzionale. Istruzioni che dichiarano variabili ed eventi aggiuntivi per il tipo.
proceduredeclarations Opzionale. Istruzioni che dichiarano e definiscono procedure aggiuntive per il tipo.
End Class o End Structure Termina questa definizione o Structure parzialeClass.

Osservazioni:

Visual Basic usa definizioni di classi parziali per separare il codice generato dal codice creato dall'utente in file di origine separati. Ad esempio, Progettazione Windows Form definisce classi parziali per controlli come Form. Non è consigliabile modificare il codice generato in questi controlli.

Tutte le regole per la creazione di classi, struttura, interfaccia e modulo, ad esempio quelle per l'utilizzo e l'ereditarietà del modificatore, si applicano durante la creazione di un tipo parziale.

Migliori pratiche

  • In circostanze normali, non è consigliabile suddividere lo sviluppo di un singolo tipo tra due o più dichiarazioni. Pertanto, nella maggior parte dei casi non è necessaria la Partial parola chiave .

  • Per la leggibilità, ogni dichiarazione parziale di un tipo deve includere la Partial parola chiave . Il compilatore consente al massimo una dichiarazione parziale di omettere la parola chiave; se due o più omettono il compilatore segnala un errore.

Comportamento

  • Unione di dichiarazioni. Il compilatore considera il tipo come l'unione di tutte le dichiarazioni parziali. Ogni modificatore di ogni definizione parziale si applica all'intero tipo e ogni membro di ogni definizione parziale è disponibile per l'intero tipo.

  • Innalzamento di livello non consentito per i tipi parziali nei moduli. Se una definizione parziale si trova all'interno di un modulo, la promozione del tipo viene automaticamente sconfitta. In questo caso, un set di definizioni parziali può causare risultati imprevisti e persino errori del compilatore. Per altre informazioni, vedere Promozione dei tipi.

    Il compilatore unisce definizioni parziali solo quando i percorsi completi sono identici.

La Partial parola chiave può essere usata in questi contesti:

Dichiarazione di classe

Dichiarazione della Struttura

Esempio

Nell'esempio seguente la definizione della classe sampleClass viene suddivisa in due dichiarazioni, ognuna delle quali definisce una routine diversa Sub .

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 potrebbero trovarsi nello stesso file di origine o in due file di origine diversi.

Vedere anche