属性リスト
更新 : 2007 年 11 月
宣言されたプログラミング要素に適用する属性を指定します。複数の属性を指定するときは、コンマ (,) で区切ります。属性を 1 つ定義する場合の構文は次のとおりです。
[ attributemodifier ] attributename [ ( attributearguments | attributeinitializer ) ]
指定項目
attributemodifier
ソース ファイルの先頭に定義する属性に、必ず指定します。Assembly または モジュール を指定できます。attributename
必ず指定します。属性の名前です。attributearguments
省略可能です。この属性の位置の引数のリストです。複数の引数を指定するときは、コンマ (,) で区切ります。attributeinitializer
省略可能です。この属性の変数初期化子またはプロパティ初期化子のリストです。複数の初期化子を指定するときは、コンマ (,) で区切ります。
解説
ほとんどすべてのプログラミング要素 (型、プロシージャ、プロパティなど) に、1 つ以上の属性を適用できます。属性はアセンブリのメタデータに格納され、コードに注釈を付けたり、特定のプログラミング要素の使い方を指定したりするのに役立ちます。Visual Basic や .NET Framework で定義された属性を適用することも、独自の属性を定義することもできます。
属性を使用する状況の詳細については、「Visual Basic における属性」および「属性の一般的な使用方法」を参照してください。属性名の詳細については、「宣言された要素の名前」を参照してください。
ルール
定義する場所。 属性は、宣言されたほとんどのプログラミング要素に適用できます。1 つ以上の属性を適用するには、要素の宣言の先頭に属性ブロックを記述します。属性リストの各エントリには、適用する属性の他に、その属性を呼び出す際に使用する修飾子や引数を指定します。
山かっこ。 属性リストを指定するには、属性を山かっこ ("<" と ">") で囲む必要があります。
宣言に含める。 属性は独立したステートメントとして宣言するのではなく、要素の宣言に含める必要があります。行連結シーケンス (" _") を使用すると、宣言ステートメントを複数行に続くソース コードに記述できます。
修飾子 ソース ファイルの先頭にあるプログラミング要素に適用する属性には、必ず属性修飾子 (Assembly または Module) を指定する必要があります。それ以外のプログラミング要素に適用される属性に対して、属性修飾子を指定することはできません。
引数。 属性に対するすべての位置指定引数を、すべての変数初期化子またはプロパティ初期化子の前に置く必要があります。
使用例
DllImportAttribute 属性を Function プロシージャのスケルトン定義に適用する例は次のようになります。
<DllImportAttribute("kernel32.dll", EntryPoint:="MoveFileW", _
SetLastError:=True, CharSet:=CharSet.Unicode, _
ExactSpelling:=True, _
CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function moveFile(ByVal src As String, _
ByVal dst As String) As Boolean
' This function copies a file from the path src to the path dst.
' Leave this function empty. The DLLImport attribute forces calls
' to moveFile to be forwarded to MoveFileW in KERNEL32.DLL.
End Function
DllImportAttribute は、属性が適用されたプロシージャが、アンマネージ ダイナミック リンク ライブラリ (DLL: Dynamic-Link Library) のエントリ ポイントであることを示します。この属性は、DLL 名を位置指定引数として指定し、その他の情報を変数初期化子として指定します。