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:
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.