Dela via


Partiell (Visual Basic)

Anger att en typdeklaration är en partiell definition av typen.

Du kan dela upp definitionen av en typ mellan flera deklarationer med hjälp av nyckelordet Partial . Du kan använda så många partiella deklarationer som du vill i så många olika källfiler som du vill. Alla deklarationer måste dock finnas i samma sammansättning och samma namnområde.

Kommentar

Visual Basic stöder partiella metoder som vanligtvis implementeras i partiella klasser. Mer information finns i Partiella metoder och underuttryck.

Syntax

[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _  
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ variabledeclarations ]  
    [ proceduredeclarations ]  
{ End Class | End Structure }  

Delar

Period Definition
attrlist Valfritt. Lista över attribut som gäller för den här typen. Du måste omsluta attributlistan i vinkelparenteser (< >).
accessmodifier Valfritt. Anger vilken kod som kan komma åt den här typen. Se Åtkomstnivåer i Visual Basic.
Shadows Valfritt. Se Skuggor.
MustInherit Valfritt. Se MustInherit.
NotInheritable Valfritt. Se NotInheritable.
name Obligatoriska. Namnet på den här typen. Måste matcha namnet som definierats i alla andra partiella deklarationer av samma typ.
Of Valfritt. Anger att detta är en allmän typ. Se Allmänna typer i Visual Basic.
typelist Krävs om du använder Av. Se Typlista.
Inherits Valfritt. Se Ärver-instruktion.
classname Krävs om du använder Inherits. Namnet på den klass eller det gränssnitt som den här klassen härleds från.
Implements Valfritt. Se Implementeringsinstruktor.
interfacenames Krävs om du använder Implements. Namnen på de gränssnitt som den här typen implementerar.
variabledeclarations Valfritt. Instruktioner som deklarerar ytterligare variabler och händelser för typen.
proceduredeclarations Valfritt. Instruktioner som deklarerar och definierar ytterligare procedurer för typen.
End Class eller End Structure Avslutar den här partiella Class definitionen eller Structure definitionen.

Kommentarer

Visual Basic använder definitioner av partiell klass för att separera genererad kod från användarskapad kod i separata källfiler. Till exempel definierar Windows Form Designer partiella klasser för kontroller som Form. Du bör inte ändra den genererade koden i dessa kontroller.

Alla regler för skapande av klass, struktur, gränssnitt och moduler, till exempel de för modifieraranvändning och arv, gäller när du skapar en partiell typ.

Metodtips

  • Under normala omständigheter bör du inte dela upp utvecklingen av en enda typ mellan två eller flera deklarationer. Därför behöver du i de flesta fall inte nyckelordet Partial .

  • För läsbarhet bör varje partiell deklaration av en typ innehålla nyckelordet Partial . Kompilatorn tillåter högst en partiell deklaration att utelämna nyckelordet. om två eller flera utelämnar det signalerar kompilatorn ett fel.

Funktionssätt

  • deklarationsunionen. Kompilatorn behandlar typen som en union av alla dess partiella deklarationer. Varje modifierare från varje partiell definition gäller för hela typen, och varje medlem från varje partiell definition är tillgänglig för hela typen.

  • Typhöjning tillåts inte för partiella typer i moduler. Om en partiell definition finns i en modul kommer typen av befordran av den typen automatiskt att besegras. I sådana fall kan en uppsättning partiella definitioner orsaka oväntade resultat och till och med kompilatorfel. Mer information finns i Typhöjning.

    Kompilatorn sammanfogar endast partiella definitioner när deras fullständigt kvalificerade sökvägar är identiska.

Nyckelordet Partial kan användas i följande sammanhang:

Klassuttryck

Struktursats

Exempel

I följande exempel delas definitionen av klassen sampleClass upp i två deklarationer, som var och en definierar en annan Sub procedur.

Partial Public Class sampleClass
    Public Sub sub1()
    End Sub
End Class
Partial Public Class sampleClass
    Public Sub sub2()
    End Sub
End Class

De två partiella definitionerna i föregående exempel kan finnas i samma källfil eller i två olika källfiler.

Se även