Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Deklarálja a struktúra nevét, és bevezeti a szerkezet változóinak, tulajdonságainak, eseményeinek és eljárásainak definícióját.
Syntax
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ Partial ] _
Structure name [ ( Of typelist ) ]
[ Implements interfacenames ]
[ datamemberdeclarations ]
[ methodmemberdeclarations ]
End Structure
Részek
Időszak | Definíció |
---|---|
attributelist |
Opcionális. Lásd: Attribútumlista. |
accessmodifier |
Opcionális. A következők egyike lehet: - Nyilvános - Védett - Barátom - Privát - Védett barát - Privát védelem Lásd a Visual Basic hozzáférési szintjeinek megtekintését. |
Shadows |
Opcionális. Lásd: Árnyékok. |
Partial |
Opcionális. A struktúra részleges definícióját jelzi. Lásd: Részleges. |
name |
Szükséges. A struktúra neve. Lásd: Deklarált elemnevek. |
Of |
Opcionális. Azt adja meg, hogy ez egy általános struktúra. |
typelist |
Az Of kulcsszó használata esetén kötelező megadni. A struktúra típusparamétereinek listája. Lásd: Típuslista. |
Implements |
Opcionális. Azt jelzi, hogy ez a struktúra egy vagy több interfész tagjait valósítja meg. Lásd: Implements Utasítás. |
interfacenames |
Az utasítás használata Implements esetén kötelező megadni. A struktúra által implementálva lévő interfészek nevei. |
datamemberdeclarations |
Szükséges. A struktúra adattagjainak deklarálására vonatkozó nulla vagy Event több Const , Dim vagy Enum utasítás. |
methodmemberdeclarations |
Opcionális. A struktúra metódustagjaként szolgáló , Operator , Property vagy eljárások nulla vagy Sub több deklarációjaFunction . |
End Structure |
Szükséges. Leállítja a definíciót Structure . |
Megjegyzések
Az Structure
utasítás egy testre szabható összetett értéktípust határoz meg. A struktúra a Visual Basic korábbi verzióinak felhasználó által definiált típusának (UDT) általánosítása. További információ: Struktúrák.
A struktúrák számos olyan funkciót támogatnak, mint az osztályok. A struktúrák például rendelkezhetnek tulajdonságokkal és eljárásokkal, implementálhatnak interfészeket, és paraméterezett konstruktorokkal is rendelkezhetnek. Azonban jelentős különbségek vannak a struktúrák és az osztályok között olyan területeken, mint az öröklés, a deklarációk és a használat. Az osztályok referenciatípusok, a struktúrák pedig értéktípusok. További információ: Struktúrák és osztályok.
Csak névtér- vagy modulszinten használható Structure
. Ez azt jelenti, hogy a struktúra deklarációs környezetének forrásfájlnak, névtérnek, osztálynak, struktúrának, modulnak vagy interfésznek kell lennie, és nem lehet eljárás vagy blokk. További információ: Deklarációs környezetek és alapértelmezett hozzáférési szintek.
Az alapértelmezett struktúrák a Barát hozzáféréshez. A hozzáférési szinteket a hozzáférési módosítókkal módosíthatja. További információ: Hozzáférési szintek a Visual Basicben.
Szabályok
Fészkelő. Egy struktúrát definiálhat egy másikon belül. A külső szerkezetet tartalmazó szerkezetnek, a belső szerkezetet pedig beágyazott szerkezetnek nevezzük. A beágyazott struktúra tagjait azonban nem érheti el az azt tartalmazó struktúrán keresztül. Ehelyett deklarálnia kell a beágyazott struktúra adattípusának változóját.
Tagi nyilatkozat. Deklarálnia kell egy struktúra minden tagját. A struktúratagok nem védhetők, vagy
Protected Friend
mert semmi sem örökölhető egy struktúrából. Maga a struktúra azonban lehetProtected
vagyProtected Friend
.Deklarálhat nulla vagy több nem tagolt változót vagy nem tagolt, nemcustom eseményt egy struktúrában. Nem rendelkezhet csak állandókkal, tulajdonságokkal és eljárásokkal, még akkor sem, ha néhány nem tagolt.
Inicializálása. A struktúra nem tagolt adattagjainak értékét nem inicializálhatja a deklaráció részeként. Vagy inicializálnia kell egy ilyen adattagot a struktúra paraméterezett konstruktorával, vagy egy értéket kell hozzárendelnie a taghoz a struktúra egy példányának létrehozása után.
Öröklési. A struktúra nem örökölhet más típusból, mint ValueTypeamelytől minden struktúra örököl. Az egyik struktúra nem örökölhető a másiktól.
Az Inherits utasítást nem használhatja struktúradefinícióban, még a megadásával ValueTypesem.
Végrehajtása. Ha a struktúra az Implements Utasítást használja, minden, a megadott felületen meghatározott tagot
interfacenames
implementálnia kell.Alapértelmezett tulajdonság. A struktúra legfeljebb egy tulajdonságot adhat meg alapértelmezett tulajdonságként az Alapértelmezett módosító használatával. További információ: Alapértelmezett.
Működés
Hozzáférési szint. Egy struktúrán belül minden tagot saját hozzáférési szinttel deklarálhat. Az összes struktúratag alapértelmezés szerint nyilvános hozzáféréssel rendelkezik. Vegye figyelembe, hogy ha maga a struktúra korlátozottabb hozzáférési szinttel rendelkezik, az automatikusan korlátozza a tagok hozzáférését, még akkor is, ha a hozzáférési szinteket a hozzáférési módosítókkal módosítja.
Hatály. A struktúra hatókörben van, amely tartalmazza a névteret, az osztályt, a struktúrát vagy a modult.
Minden struktúratag hatóköre a teljes struktúra.
Élettartam. A szerkezetnek nincs élettartama. Ehelyett a struktúra minden példánya az összes többi példánytól független élettartamú.
Egy példány élettartama akkor kezdődik, amikor egy Új operátor záradék hozza létre. Akkor ér véget, amikor az azt tartalmazó változó élettartama véget ér.
A struktúrapéldányok élettartama nem hosszabbítható meg. A statikus struktúra funkcióinak közelítését egy modul biztosítja. További információ: Modulutasítás.
A struktúratagok élettartama attól függ, hogy hogyan és hol deklarálják őket. További információ: "Élettartam" az Osztálykimutatásban.
Képesítés. A struktúrán kívüli kódnak a tag nevét kell minősítenie az adott struktúra nevével.
Ha a beágyazott struktúrában lévő kód nem minősített hivatkozást ad egy programozási elemre, a Visual Basic először a beágyazott struktúrában, majd a benne lévő struktúrában keresi az elemet, és így tovább a legkülső elemet. További információ: Deklarált elemekre mutató hivatkozások.
Memóriahasználat. Mint minden összetett adattípus esetében, a tagok névleges tárterületeinek összeadásával nem lehet biztonságosan kiszámítani egy struktúra teljes memóriahasználatát. Nem feltételezheti továbbá, hogy a memória tárolási sorrendje megegyezik a deklarálási sorrenddel. Ha szabályoznia kell egy struktúra tárolási elrendezését, alkalmazhatja az StructLayoutAttribute attribútumot az
Structure
utasításra.
Példa
Az alábbi példa az Structure
utasítást használja egy alkalmazotthoz kapcsolódó adatok halmazának meghatározására. Megjeleníti a , Friend
és Private
a tagok használatát Public
az adatelemek érzékenységének tükrözésére. Emellett megjeleníti az eljárást, a tulajdonságot és az eseménytagokat.
Public Structure employee
' Public members, accessible from throughout declaration region.
Public firstName As String
Public middleName As String
Public lastName As String
' Friend members, accessible from anywhere within the same assembly.
Friend employeeNumber As Integer
Friend workPhone As Long
' Private members, accessible only from within the structure itself.
Private homePhone As Long
Private level As Integer
Private salary As Double
Private bonus As Double
' Procedure member, which can access structure's private members.
Friend Sub CalculateBonus(ByVal rate As Single)
bonus = salary * CDbl(rate)
End Sub
' Property member to return employee's eligibility.
Friend ReadOnly Property Eligible() As Boolean
Get
Return level >= 25
End Get
End Property
' Event member, raised when business phone number has changed.
Public Event ChangedWorkPhone(ByVal newPhone As Long)
End Structure
Az s használatáról Structure
további információt a Structure Variable című témakörben talál.