Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Deklarerar namnet på en egenskap och de egenskapsprocedurer som används för att lagra och hämta värdet för egenskapen.
Syntax
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
[ statements ]
End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
Delar
attributelistValfritt. Lista över attribut som gäller för den här egenskapen eller
GetprocedurenSet. Se Attributlista.DefaultValfritt. Anger att den här egenskapen är standardegenskapen för den klass eller struktur som den definieras för. Standardegenskaper måste acceptera parametrar och kan anges och hämtas utan att ange egenskapsnamnet. Om du deklarerar egenskapen som
Defaultkan du inte användaPrivatepå egenskapen eller på någon av dess egenskapsprocedurer. Exempel och detaljerad vägledning finns i Så här deklarerar och anropar du en standardegenskap i Visual Basic.accessmodifierValfritt för -instruktionen
Propertyoch på högst en av - ochGet-uttryckenSet. Kan vara något av följande:propertymodifiersValfritt. Kan vara något av följande:
MustOverride OverridesNotOverridable Overrides
SharedValfritt. Se Delat.
ShadowsValfritt. Se Skuggor.
ReadOnlyValfritt. Se ReadOnly.
WriteOnlyValfritt. Se WriteOnly.
IteratorValfritt. Se Iterator.
nameObligatoriskt. Namnet på egenskapen. Se Deklarerade elementnamn.
parameterlistValfritt. Lista över lokala variabelnamn som representerar parametrarna för den här egenskapen och möjliga ytterligare parametrar för proceduren
Set. Parameteriserade egenskaper används ofta för att skapa indexerare eller standardegenskaper som tillåter samlingsliknande åtkomst. Se Parameterlista och Så här deklarerar och anropar du en standardegenskap i Visual Basic.returntypeKrävs om
Option StrictärOn. Datatyp för värdet som returneras av den här egenskapen.ImplementsValfritt. Anger att den här egenskapen implementerar en eller flera egenskaper, var och en definierad i ett gränssnitt som implementeras av den här egenskapens innehållande klass eller struktur. Se Implementeringsinstruktor.
implementslistKrävs om
Implementsanges. Lista över egenskaper som implementeras.implementedproperty [ , implementedproperty ... ]Var
implementedpropertyoch en har följande syntax och delar:interface.definednameDelvis beskrivning interfaceObligatoriskt. Namnet på ett gränssnitt som implementeras av den här egenskapen innehåller klass eller struktur. definednameObligatoriskt. Namn med vilket egenskapen definieras i interface.GetValfritt. Krävs om egenskapen är markerad
ReadOnly. Startar enGetegenskapsprocedur som används för att returnera värdet för egenskapen. -instruktionenGetanvänds inte med automatiskt implementerade egenskaper.statementsValfritt. Block med instruktioner som ska köras inom proceduren
GetellerSet.End GetAvslutar egenskapsproceduren
Get.SetValfritt. Krävs om egenskapen är markerad
WriteOnly. Startar enSetegenskapsprocedur som används för att lagra värdet för egenskapen. -instruktionenSetanvänds inte med automatiskt implementerade egenskaper.End SetAvslutar egenskapsproceduren
Set.End PropertyAvslutar definitionen av den här egenskapen.
Kommentarer
-instruktionen Property introducerar deklarationen av en egenskap. En egenskap kan ha en Get procedur (skrivskyddad), en Set procedur (endast skrivning) eller båda (skrivskyddad). Du kan utelämna proceduren Get och Set när du använder en automatiskt implementerad egenskap. Mer information finns i Automatiskt implementerade egenskaper.
Du kan bara använda Property på klassnivå. Det innebär att deklarationskontexten för en egenskap måste vara en klass, struktur, modul eller gränssnitt och får inte vara en källfil, ett namnområde, en procedur eller ett block. Mer information finns i Deklarationskontexter och standardåtkomstnivåer.
Som standard använder egenskaper offentlig åtkomst. Du kan justera en egenskaps åtkomstnivå med en åtkomstmodifierare på -instruktionen Property , och du kan också justera en av dess egenskapsprocedurer till en mer restriktiv åtkomstnivå. Detaljerade exempel på blandade åtkomstnivåer finns i Så här deklarerar du en egenskap med blandade åtkomstnivåer.
Visual Basic skickar en parameter till proceduren Set under egenskapstilldelningar. Om du inte anger en parameter för Setanvänder den integrerade utvecklingsmiljön (IDE) en implicit parameter med namnet value. Den här parametern innehåller det värde som ska tilldelas egenskapen. Du lagrar vanligtvis det här värdet i en privat lokal variabel och returnerar det när proceduren Get anropas.
Regler
Blandade åtkomstnivåer. Om du definierar en skrivskyddad egenskap kan du ange en annan åtkomstnivå för antingen proceduren
GetSeteller , men inte båda. Om du gör det måste åtkomstnivån för proceduren vara mer restriktiv än egenskapens åtkomstnivå. Om egenskapen till exempel deklarerasFriendkan du deklarera procedurenSetPrivate, men intePublic.Om du definierar en
ReadOnlyellerWriteOnly-egenskap representerar den enskilda egenskapsproceduren (GetrespektiveSet) hela egenskapen. Du kan inte deklarera en annan åtkomstnivå för en sådan procedur eftersom det skulle ange två åtkomstnivåer för egenskapen.Returtyp. -instruktionen
Propertykan deklarera datatypen för det värde som returneras. Du kan ange valfri datatyp eller namnet på en uppräkning, struktur, klass eller gränssnitt.Om du inte anger
returntypereturnerarObjectegenskapen .Genomförande. Om den här egenskapen använder nyckelordet
Implementsmåste den innehållande klassen eller strukturen ha enImplementsinstruktion omedelbart efter dessClassellerStructure-instruktionen. InstruktionenImplementsmåste innehålla varje gränssnitt som anges iimplementslist. Det namn med vilket ett gränssnitt definierarProperty(idefinedname) behöver dock inte vara samma som namnet på den här egenskapen (iname).
Funktionssätt
Returnerar från en egenskapsprocedur. När proceduren
GetellerSetåtergår till den anropande koden fortsätter körningen med -instruktionen efter -instruktionen som anropade den.Instruktionen
Exit PropertyochReturnorsakar ett omedelbart utträde från en egenskapsprocedur. Valfritt antalExit PropertyochReturninstruktioner kan visas var som helst i proceduren och du kan blandaExit PropertyochReturninstruktioner.Returvärde. Om du vill returnera ett värde från en
Getprocedur kan du antingen tilldela värdet till egenskapsnamnet eller inkludera det i enReturn-instruktion. I följande exempel tilldelas returvärdet till egenskapsnamnetquoteForTheDayoch använder sedan -instruktionenExit Propertyför att returnera.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertyOm du använder
Exit Propertyutan att tilldela ett värde tillnameGetreturnerar proceduren standardvärdet för egenskapens datatyp.-
Returninstruktionen tilldelar samtidigt procedurensGetreturvärde och avslutar proceduren. Följande exempel visar detta.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
Exempel
I följande exempel deklareras en egenskap i en klass.
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property Prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class
Parameteriserade egenskaper
I följande exempel visas hur du skapar en parameteriserad egenskap, även kallad indexerare, som tillåter matrisliknande åtkomst till en samling:
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
Omfattande exempel på egenskapsanvändning, inklusive automatisk implementering, blandade åtkomstnivåer och valideringsscenarier, finns i Egenskapsprocedurer.
Se även
Egenskapstyper och funktioner
Avancerade egenskapsscenarier
- Så här deklarerar och anropar du en standardegenskap i Visual Basic
- Gör så här: Deklarera en egenskap med blandade åtkomstnivåer