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.
Ez a témakör a Visual Basic-programokban leggyakrabban használt attribútumokat ismerteti.
Globális attribútumok
A legtöbb attribútum adott nyelvi elemekre, például osztályokra vagy metódusokra van alkalmazva; egyes attribútumok azonban globálisak – egy teljes szerelvényre vagy modulra vonatkoznak. Az attribútum például a AssemblyVersionAttribute verzióinformációk szerelvénybe való beágyazására használható, például a következőhöz:
<Assembly: AssemblyVersion("1.0.0.0")>
A globális attribútumok a forráskódban jelennek meg a legfelső szintű Imports utasítások után, illetve bármilyen típus-, modul- vagy névtérdeklaráció előtt. A globális attribútumok több forrásfájlban is megjelenhetnek, de a fájlokat egyetlen fordítási menetben kell lefordítani. Visual Basic-projektek esetén a globális attribútumok általában a AssemblyInfo.vb fájlba kerülnek (a fájl automatikusan jön létre, amikor projektet hoz létre a Visual Studióban).
A szerelvényattribútumok olyan értékek, amelyek információt nyújtanak egy szerelvényről. Ezek a következő kategóriákba sorolhatók:
Szerelvényidentitás-attribútumok
Információs attribútumok
Összeállítási jegyzék attribútumai
Szerelvényidentitás-attribútumok
A közgyűlés identitását három attribútum határozza meg: név, verzió és kultúra (ha alkalmazható, egy erős névvel). Ezek az attribútumok alkotják a szerelvény teljes nevét, és a kódban való hivatkozáshoz szükségesek. Az összeállítás verziójának és kultúrájának beállításához attribútumokat használhat. A névértéket azonban a fordító, a Visual Studio IDE a szerelvényinformációs párbeszédpanelen, vagy az Assembly Linker (Al.exe) állítja be a szerelvény létrehozásakor, a szerelvényjegyzéket tartalmazó fájl alapján. Az AssemblyFlagsAttribute attribútum azt határozza meg, hogy a szerelvény több példánya is létezhet-e.
Az alábbi táblázat az identitásattribútumokat mutatja be.
| Jellemző | Cél |
|---|---|
| AssemblyName | Teljes mértékben leírja egy összeállítás identitását. |
| AssemblyVersionAttribute | Egy szerelvény verzióját adja meg. |
| AssemblyCultureAttribute | Meghatározza, hogy a szerelvény mely kultúrát támogatja. |
| AssemblyFlagsAttribute | Megadja, hogy egy szerelvény támogatja-e az egymás melletti végrehajtást ugyanazon a számítógépen, ugyanabban a folyamatban vagy ugyanabban az alkalmazástartományban. |
Információs attribútumok
Az információs attribútumokkal további vállalati vagy termékinformációkat adhat meg egy szerelvényhez. Az alábbi táblázat a névtérben System.Reflection definiált információs attribútumokat mutatja be.
| Jellemző | Cél |
|---|---|
| AssemblyProductAttribute | Olyan egyéni attribútumot határoz meg, amely megadja egy szerelvényjegyzék terméknevét. |
| AssemblyTrademarkAttribute | Olyan egyéni attribútumot határoz meg, amely egy szerelvényjegyzék védjegyét határozza meg. |
| AssemblyInformationalVersionAttribute | Olyan egyéni attribútumot határoz meg, amely egy szerelvényjegyzék információs verzióját adja meg. |
| AssemblyCompanyAttribute | Egyéni attribútumot definiál, amely meghatározza az összeszerelési jegyzék cégnevét. |
| AssemblyCopyrightAttribute | Olyan egyéni attribútumot definiál, amely egy szerelvényjegyzék szerzői jogát határozza meg. |
| AssemblyFileVersionAttribute | Utasítja a fordítót, hogy használjon egy adott verziószámot a Win32 fájlverzió-erőforráshoz. |
| CLSCompliantAttribute | Azt jelzi, hogy a szerelvény megfelel-e a Common Language Specification (CLS) szabványnak. |
Szerelvénymanfeszt attribútumai
A szerelvényjegyzék attribútumai segítségével információkat adhat meg a szerelvényjegyzékben. Ide tartozik a cím, a leírás, az alapértelmezett alias és a konfiguráció. Az alábbi táblázat a System.Reflection névtérben definiált szerelvényjegyzék-attribútumokat mutatja be.
| Jellemző | Cél |
|---|---|
| AssemblyTitleAttribute | Olyan egyéni attribútumot határoz meg, amely egy szerelvényjegyzék szerelvénycímét adja meg. |
| AssemblyDescriptionAttribute | Definiál egy egyéni attribútumot, amely egy szerelvényjegyzék szerelvényleírását adja meg. |
| AssemblyConfigurationAttribute | Definiál egy egyéni attribútumot, amely szerelvénykonfigurációt (például kiskereskedelmi vagy hibakeresési) határoz meg egy szerelvényjegyzékhez. |
| AssemblyDefaultAliasAttribute | Az összeszerelési jegyzékhez tartozó barátságos alapértelmezett alias definiálása |
Elavult attribútum
Az Obsolete attribútum olyan programentitást jelöl, amelyet már nem ajánlott használni. Az elavultként megjelölt entitások minden egyes használata figyelmeztetést vagy hibát eredményez az attribútum konfigurálásának módjától függően. Például:
<System.Obsolete("use class B")>
Class A
Sub Method()
End Sub
End Class
Class B
<System.Obsolete("use NewMethod", True)>
Sub OldMethod()
End Sub
Sub NewMethod()
End Sub
End Class
Ebben a példában az attribútum az Obsolete osztályra A és a metódusra B.OldMethodlesz alkalmazva. Mivel az alkalmazott B.OldMethod attribútumkonstruktor második argumentuma a következőre truevan állítva, ez a metódus fordítási hibát okoz, míg az osztály A használata csak figyelmeztetést eredményez. A hívás B.NewMethodazonban nem okoz figyelmeztetést vagy hibát.
Az attribútumkonstruktor első argumentumaként megadott sztring a figyelmeztetés vagy a hiba részeként jelenik meg. Ha például az előző definíciókkal használja, a következő kód két figyelmeztetést és egy hibát generál:
' Generates 2 warnings:
' Dim a As New A
' Generate no errors or warnings:
Dim b As New B
b.NewMethod()
' Generates an error, terminating compilation:
' b.OldMethod()
Az osztály A két figyelmeztetést generál: egyet az osztályhivatkozás deklarációjára, egyet pedig az osztálykonstruktorra.
Az Obsolete attribútum argumentumok nélkül is használható, de annak magyarázatát is beleértve, hogy miért elavult az elem, és mit érdemes helyette használni.
Az Obsolete attribútum egy egyszer használatos attribútum, és bármely olyan entitásra alkalmazható, amely engedélyezi az attribútumokat.
Obsolete egy alias ObsoleteAttribute számára.
Feltételes attribútum
Az Conditional attribútum egy metódus végrehajtását egy előfeldolgozási azonosítótól teszi függővé. A Conditional attribútum a ConditionalAttribute aliasa, és alkalmazható egy metódusra vagy egy attribútumosztályra.
Ebben a példában egy olyan metódusra van alkalmazva, Conditional amely engedélyezi vagy letiltja a programspecifikus diagnosztikai információk megjelenítését:
#Const TRACE_ON = True
Imports System.Diagnostics
Module TestConditionalAttribute
Public Class Trace
<Conditional("TRACE_ON")>
Public Shared Sub Msg(ByVal msg As String)
Console.WriteLine(msg)
End Sub
End Class
Sub Main()
Trace.Msg("Now in Main...")
Console.WriteLine("Done.")
End Sub
End Module
Ha az TRACE_ON azonosító nincs definiálva, nem jelenik meg nyomkövetési kimenet.
Az Conditional attribútumot gyakran használják a DEBUG azonosítóval a hibakeresési buildekben a nyomkövetés és naplózás engedélyezéséhez, a kiadási buildekben azonban nem, például így:
<Conditional("DEBUG")>
Shared Sub DebugMethod()
End Sub
Feltételesként megjelölt metódus meghívása esetén a megadott előfeldolgozási szimbólum jelenléte vagy hiánya határozza meg, hogy a hívás szerepel-e benne vagy kimaradt-e. Ha a szimbólum definiálva van, a hívás is megjelenik; ellenkező esetben a hívás ki van hagyva.
Conditional használata egy tisztább, elegánsabb és kevésbé hibalehetőséget rejtő alternatíva a #if…#endif blokkokba ágyazott módszerekhez, például a következő módon:
#If DEBUG Then
Sub ConditionalMethod()
End Sub
#End If
A feltételes metódusnak osztály- vagy szerkezetdeklarációban szereplő metódusnak kell lennie, és nem lehet visszatérési értéke.
Több azonosító használata
Ha egy metódus több Conditional attribútummal is rendelkezik, a rendszer meghívja a metódust, ha a feltételes szimbólumok közül legalább egy definiálva van (más szóval a szimbólumok logikailag össze vannak kapcsolva az OR operátor használatával). Ebben a példában a `A` vagy `B` jelenléte metódushívást eredményez.
<Conditional("A"), Conditional("B")>
Shared Sub DoIfAorB()
End Sub
A szimbólumok logikai összekapcsolásának hatásának eléréséhez az AND operátor használatával meghatározhatja a sorba rendezett feltételes metódusokat. Az alábbi második metódus például csak akkor lesz végrehajtva, ha mindkettő AB definiálva van:
<Conditional("A")>
Shared Sub DoIfA()
DoIfAandB()
End Sub
<Conditional("B")>
Shared Sub DoIfAandB()
' Code to execute when both A and B are defined...
End Sub
Feltételes és attribútumosztályok használata
Az Conditional attribútum attribútumosztály-definícióra is alkalmazható. Ebben a példában az egyéni attribútum Documentation csak a DEBUG definiálása esetén ad hozzá adatokat a metaadatokhoz.
<Conditional("DEBUG")>
Public Class Documentation
Inherits System.Attribute
Private text As String
Sub New(ByVal doc_text As String)
text = doc_text
End Sub
End Class
Class SampleClass
' This attribute will only be included if DEBUG is defined.
<Documentation("This method displays an integer.")>
Shared Sub DoWork(ByVal i As Integer)
System.Console.WriteLine(i)
End Sub
End Class
Hívó adatainak attribútumai
A Hívó adatai attribútumok használatával adatokat szerezhet be a hívóról egy metódushoz. Beszerezheti a forráskód fájl elérési útját, a forráskód sorszámát és a hívó tagnevét.
A taghívó adatainak lekéréséhez az opcionális paraméterekre alkalmazott attribútumokat kell használnia. Minden választható paraméter egy alapértelmezett értéket ad meg. Az alábbi táblázat a névtérben System.Runtime.CompilerServices definiált hívóinformációs attribútumokat sorolja fel:
| Jellemző | Leírás | típus |
|---|---|---|
| CallerFilePathAttribute | A hívót tartalmazó forrásfájl teljes elérési útja. Ez a fordítási időben megadott elérési út. | String |
| CallerLineNumberAttribute | Annak a forrásfájlnak a sorszáma, amelyből a metódust meghívják. | Integer |
| CallerMemberNameAttribute | A hívó metódusneve vagy tulajdonságneve. További információ: Hívóadatok (Visual Basic). | String |
| CallerArgumentExpressionAttribute | A hívó által argumentumként használt kifejezés. További információ: Hívóadatok (Visual Basic). | String |
A Hívó adatai attribútumokról további információt a Hívó adatai (Visual Basic) című témakörben talál.
Visual Basic attribútumok
Az alábbi táblázat a Visual Basicre jellemző attribútumokat sorolja fel.
| Jellemző | Cél |
|---|---|
| ComClassAttribute | Azt jelzi a fordítónak, hogy az osztályt COM-objektumként kell elérhetővé tenni. |
| HideModuleNameAttribute | A modultagok csak a modulhoz szükséges képesítéssel érhetők el. |
| VBFixedStringAttribute | A rögzített hosszúságú sztring méretét adja meg egy struktúrában a fájlbemeneti és kimeneti függvényekkel való használatra. |
| VBFixedArrayAttribute | Egy rögzített tömb méretét adja meg egy struktúrában, amely fájlbemeneti és kimeneti függvényekkel használható. |
COMClassAttribute
A COMClassAttribute COM-összetevők Visual Basicből való létrehozásának folyamatát egyszerűsítheti. A COM-objektumok jelentősen eltérnek a .NET-keretrendszer gyűjteményeitől, és COMClassAttribute nélkül több lépést is követnie kell, hogy COM-objektumot hozzon létre Visual Basicből. A megjelölt COMClassAttributeosztályok esetében a fordító sok lépést automatikusan végrehajt.
HideModuleNameAttribute
Használja a HideModuleNameAttribute-t, hogy a modultagok elérhetők legyenek pusztán a modulhoz szükséges képesítés használatával.
VBFixedStringAttribute
A VBFixedStringAttribute segítségével kényszerítheti a Visual Basic-et, hogy rögzített hosszúságú sztringet hozzon létre. A sztringek alapértelmezés szerint változó hosszúságúak, és ez az attribútum a sztringek fájlokba való tárolásakor hasznos. A következő kód ezt mutatja be:
Structure Worker
' The runtime uses VBFixedString to determine
' if the field should be written out as a fixed size.
<VBFixedString(10)> Public LastName As String
<VBFixedString(7)> Public Title As String
<VBFixedString(2)> Public Rank As String
End Structure
VBFixedArrayAttribute
Méretben rögzített tömbök deklarálásához használható VBFixedArrayAttribute . A Visual Basic-sztringekhez hasonlóan a tömbök is alapértelmezés szerint változó hosszúságúak. Ez az attribútum akkor hasznos, ha adatokat szerializál vagy fájlba ír.