Klassuttryck (Visual Basic)

Deklarerar namnet på en klass och introducerar definitionen av variabler, egenskaper, händelser och procedurer som klassen består av.

Syntax

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _  
Class name [ ( Of typelist ) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ statements ]  
End Class  

Delar

Period Definition
attributelist Valfritt. Se Attributlista.
accessmodifier Valfritt. Kan vara något av följande:

- Offentliga
- Skyddade
- Vän
- Privat
- Skyddad vän
- Privat skyddad

Se Åtkomstnivåer i Visual Basic.
Shadows Valfritt. Se Skuggor.
MustInherit Valfritt. Se MustInherit.
NotInheritable Valfritt. Se NotInheritable.
Partial Valfritt. Anger en partiell definition av klassen. Se Partiell.
name Obligatoriska. Namnet på den här klassen. Se Deklarerade elementnamn.
Of Valfritt. Anger att det här är en allmän klass.
typelist Krävs om du använder nyckelordet Av . Lista över typparametrar för den här klassen. Se Typlista.
Inherits Valfritt. Anger att den här klassen ärver medlemmarna i en annan klass. Se Ärver-instruktion.
classname Krävs om du använder -instruktionen Inherits . Namnet på klassen som den här klassen härleds från.
Implements Valfritt. Anger att den här klassen implementerar medlemmarna i ett eller flera gränssnitt. Se Implementeringsinstruktor.
interfacenames Krävs om du använder -instruktionen Implements . Namnen på de gränssnitt som den här klassen implementerar.
statements Valfritt. Instruktioner som definierar medlemmarna i den här klassen.
End Class Obligatoriska. Class Avslutar definitionen.

Kommentarer

En Class instruktion definierar en ny datatyp. En klass är en grundläggande byggsten för objektorienterad programmering (OOP). Mer information finns i Objekt och klasser.

Du kan bara använda Class på namnområdes- eller modulnivå. Det innebär att deklarationskontexten för en klass måste vara en källfil, namnrymd, klass, struktur, modul eller gränssnitt och kan inte vara en procedur eller ett block. Mer information finns i Deklarationskontexter och standardåtkomstnivåer.

Varje instans av en klass har en livslängd oberoende av alla andra instanser. Den här livslängden börjar när den skapas av en ny operator-sats eller av en funktion som CreateObject. Den slutar när alla variabler som pekar på instansen har angetts till Ingenting eller till instanser av andra klasser.

Klasser som standard är vänåtkomst . Du kan justera deras åtkomstnivåer med åtkomstmodifierarna. Mer information finns i Åtkomstnivåer i Visual Basic.

Regler

  • Häckande. Du kan definiera en klass i en annan. Den yttre klassen kallas för den innehållande klassen och den inre klassen kallas för en kapslad klass.

  • Arv. Om klassen använder instruktionen Ärver kan du bara ange en basklass eller ett gränssnitt. En klass kan inte ärva från fler än ett element.

    En klass kan inte ärva från en annan klass med en mer restriktiv åtkomstnivå. En Public klass kan till exempel inte ärva från en Friend klass.

    En klass kan inte ärva från en klass som är kapslad i den.

  • Genomförandet. Om klassen använder Implements-instruktionen måste du implementera varje medlem som definieras av varje gränssnitt som du anger i interfacenames. Ett undantag till detta är omimplementering av en basklassmedlem. Mer information finns i "Omimplementering" i Implementeringar.

  • Standardegenskap. En klass kan ange högst en egenskap som standardegenskap. Mer information finns i Standard.

Funktionssätt

  • Åtkomstnivå. I en klass kan du deklarera varje medlem med sin egen åtkomstnivå. Klassmedlemmar är standard för offentlig åtkomst, förutom variabler och konstanter, som är standard för privat åtkomst. När en klass har mer begränsad åtkomst än en av dess medlemmar har klassåtkomstnivån företräde.

  • Omfattning. En klass finns i omfånget i dess innehållande namnrymd, klass, struktur eller modul.

    Omfånget för varje klassmedlem är hela klassen.

    Livslängd. Visual Basic stöder inte statiska klasser. Den funktionella motsvarigheten till en statisk klass tillhandahålls av en modul. Mer information finns i Modulöversikt.

    Klassmedlemmar har livslängd beroende på hur och var de deklareras. Mer information finns i Livslängd i Visual Basic.

  • Kvalifikationer. Kod utanför en klass måste kvalificera en medlems namn med namnet på den klassen.

    Om kod i en kapslad klass gör en okvalificerad referens till ett programmeringselement söker Visual Basic efter elementet först i den kapslade klassen, sedan i dess innehållande klass och så vidare ut till det yttersta elementet som innehåller elementet.

Klasser och moduler

Dessa element har många likheter, men det finns även några viktiga skillnader.

  • Terminologi. Tidigare versioner av Visual Basic känner igen två typer av moduler: klassmoduler (.cls-filer) och standardmoduler (.bas-filer). Den aktuella versionen anropar dessa klasser respektive moduler.

  • Delade medlemmar. Du kan styra om en medlem i en klass är en delad medlem eller instansmedlem.

  • Objektorientering. Klasser är objektorienterade, men moduler är det inte. Du kan skapa en eller flera instanser av en klass. Mer information finns i Objekt och klasser.

Exempel

I följande exempel används en Class -instruktion för att definiera en klass och flera medlemmar.

Class BankAccount
    Shared interestRate As Decimal
    Private accountBalance As Decimal
    Public holdOnAccount As Boolean = False

    Public ReadOnly Property Balance() As Decimal
        Get
            Return accountBalance
        End Get
    End Property

    Public Sub PostInterest()
        accountBalance = accountBalance * (1 + interestRate)
    End Sub

    Public Sub PostDeposit(ByVal amountIn As Decimal)
        accountBalance = accountBalance + amountIn
    End Sub

    Public Sub PostWithdrawal(ByVal amountOut As Decimal)
        accountBalance = accountBalance - amountOut
    End Sub
End Class

Se även