Dela via


Gör så här: Skapa en egenskap (Visual Basic)

Du omger en egenskapsdefinition mellan en Property -instruktion och en End Property -instruktion. I den här definitionen definierar du en Get procedur, en Set procedur eller både och. All egenskapskod ligger inom dessa procedurer.

Proceduren Get hämtar egenskapens värde och proceduren Set lagrar ett värde. Om du vill att egenskapen ska ha läs-/skrivåtkomst måste du definiera båda procedurerna. För en skrivskyddad egenskap definierar du endast Get, och för en skrivskyddad egenskap definierar du endast Set.

Skapa en egenskap

  1. Utanför valfri egenskap eller procedur använder du en egenskapsuttryck följt av en End Property -instruktion.

  2. Om egenskapen tar parametrar följer du nyckelordet Property med namnet på proceduren och sedan parameterlistan inom parenteser.

  3. Följ parenteserna med en As sats för att ange datatypen för egenskapens värde. Du måste ange datatypen även för en skrivskyddad egenskap.

  4. Lägg till Get och Set procedurer efter behov. Se följande anvisningar.

Skapa en Get-procedur som hämtar ett egenskapsvärde

  1. Mellan - och-uttrycken PropertyEnd Property skriver du en Get-instruktion följt av en End Get -instruktion. Du behöver inte definiera några parametrar för proceduren Get .

  2. Placera kodinstruktionerna för att hämta egenskapens värde mellan - och-uttrycken GetEnd Get . Den här koden kan innehålla andra beräkningar och datamanipuleringar utöver att generera och returnera egenskapens värde.

  3. Använd en Return instruktion för att returnera egenskapens värde till den anropande koden.

Du måste skriva en Get procedur för en skrivskyddad egenskap och för en skrivskyddad egenskap. Du får inte definiera en Get procedur för en skrivskyddad egenskap.

Så här skapar du en Set-procedur som skriver en egenskaps värde

  1. Mellan - och-uttrycken PropertyEnd Property skriver du en Set-instruktion följt av en End Set -instruktion.

  2. I -instruktionen Set kan du välja att följa nyckelordet Set med en parameterlista inom parenteser. Om parameterlistan inte finns eller är tom definieras en implicit parameter med namnet Value , vars typ är själva egenskapens typ. Om parameterlistan inte är tom kan du använda ett annat namn om det är lämpligt, men parametern måste ha samma datatyp som själva egenskapen.

  3. Placera kodinstruktionerna för att lagra ett värde i egenskapen mellan - och-uttrycken SetEnd Set . Den här koden kan innehålla andra beräkningar och datamanipuleringar utöver validering och lagring av egenskapens värde.

  4. Använd värdeparametern för att acceptera det värde som anges av den anropande koden. Du kan antingen lagra det här värdet direkt i en tilldelningssats eller använda det i ett uttryck för att beräkna det interna värde som ska lagras.

Du måste skriva en Set procedur för en skrivskyddad egenskap och för en skrivskyddad egenskap. Du får inte definiera en Set procedur för en skrivskyddad egenskap.

Exempel

I följande exempel skapas en läs-/skrivegenskap som lagrar ett fullständigt namn som två komponentnamn, förnamnet och efternamnet. När den anropande koden läser kombinerar fullNameproceduren Get de två komponentnamnen och returnerar det fullständiga namnet. När den anropande koden tilldelar ett nytt fullständigt namn försöker proceduren Set dela upp det i två komponentnamn. Om det inte hittar något utrymme lagras allt som förnamn.

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

I följande exempel visas vanliga anrop till egenskapsprocedurerna fullNameför . Det första anropet anger egenskapsvärdet och det andra anropet hämtar det.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Se även