Partial (Visual Basic)

Wskazuje, że deklaracja typu jest częściową definicją typu.

Definicję typu można podzielić na kilka deklaracji, używając słowa kluczowego Partial . Dowolną liczbę deklaracji częściowych można używać w dowolnie wielu różnych plikach źródłowych. Jednak wszystkie deklaracje muszą znajdować się w tym samym zestawie i tej samej przestrzeni nazw.

Uwaga

Język Visual Basic obsługuje metody częściowe, które są zwykle implementowane w klasach częściowych. Aby uzyskać więcej informacji, zobacz Metody częściowe i instrukcja podrzędna.

Składnia

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

generatora

Termin Definicja
attrlist Opcjonalny. Lista atrybutów, które mają zastosowanie do tego typu. Listę atrybutów należy ująć w nawiasy kątowe (< >).
accessmodifier Opcjonalny. Określa, jaki kod może uzyskać dostęp do tego typu. Zobacz Poziomy dostępu w Visual Basic.
Shadows Opcjonalny. Zobacz Cienie.
MustInherit Opcjonalny. Zobacz MustInherit.
NotInheritable Opcjonalny. Zobacz NotInheritable.
name Wymagany. Nazwa tego typu. Musi być zgodna z nazwą zdefiniowaną we wszystkich innych częściowych deklaracjach tego samego typu.
Of Opcjonalny. Określa, że jest to typ ogólny. Zobacz Typy ogólne w Visual Basic.
typelist Wymagane, jeśli używasz polecenia Of. Zobacz Typ listy.
Inherits Opcjonalny. Zobacz Dziedziczy instrukcję.
classname Wymagane, jeśli używasz polecenia Inherits. Nazwa klasy lub interfejsu, z którego pochodzi ta klasa.
Implements Opcjonalny. Zobacz Implements, instrukcja.
interfacenames Wymagane, jeśli używasz polecenia Implements. Nazwy interfejsów tego typu implementują.
variabledeclarations Opcjonalny. Instrukcje, które deklarują dodatkowe zmienne i zdarzenia dla typu.
proceduredeclarations Opcjonalny. Instrukcje, które deklarują i definiują dodatkowe procedury dla typu.
End Class lub End Structure Kończy tę częściową Class lub Structure definicję.

Uwagi

W języku Visual Basic definicje częściowej klasy są używane do oddzielania wygenerowanego kodu od kodu utworzonego przez użytkownika w oddzielnych plikach źródłowych. Na przykład formularz systemu Windows Projektant definiuje klasy częściowe dla kontrolek, takich jak Form. Nie należy modyfikować wygenerowanego kodu w tych kontrolkach.

Wszystkie reguły tworzenia klas, struktury, interfejsu i modułu, takie jak te dla modyfikatora użycia i dziedziczenia, mają zastosowanie podczas tworzenia typu częściowego.

Najlepsze praktyki

  • W normalnych okolicznościach nie należy dzielić rozwoju pojedynczego typu w co najmniej dwóch deklaracjach. W związku z tym w większości przypadków słowo kluczowe nie jest potrzebne Partial .

  • W celu zapewnienia czytelności każda częściowa deklaracja typu powinna zawierać Partial słowo kluczowe. Kompilator zezwala na co najwyżej jedną częściową deklarację pomijania słowa kluczowego; jeśli co najmniej dwa pomiń go kompilator sygnalizuje błąd.

Zachowanie

  • Unia deklaracji. Kompilator traktuje typ jako związek wszystkich jego częściowych deklaracji. Każdy modyfikator z każdej definicji częściowej ma zastosowanie do całego typu, a każdy element członkowski z każdej definicji częściowej jest dostępny dla całego typu.

  • Typ Podwyższanie poziomu jest niedozwolone dla typów częściowych w modułach. Jeśli definicja częściowa znajduje się wewnątrz modułu, podwyższenie poziomu typu tego typu zostanie automatycznie pokonane. W takim przypadku zestaw definicji częściowych może powodować nieoczekiwane wyniki, a nawet błędy kompilatora. Aby uzyskać więcej informacji, zobacz Podwyższanie poziomu typów.

    Kompilator scala częściowe definicje tylko wtedy, gdy ich w pełni kwalifikowane ścieżki są identyczne.

Słowo Partial kluczowe może być używane w następujących kontekstach:

Class, instrukcja

Structure, instrukcja

Przykład

Poniższy przykład dzieli definicję klasy sampleClass na dwie deklaracje, z których każda definiuje inną Sub procedurę.

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

Dwie częściowe definicje w poprzednim przykładzie mogą znajdować się w tym samym pliku źródłowym lub w dwóch różnych plikach źródłowych.

Zobacz też