1 つ以上の定数を宣言して定義します。
構文
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
部品
attributelist
任意。 このステートメントで宣言されているすべての定数に適用される属性の一覧。 山かっこ ("<
" と ">
") の属性リストを参照してください。
accessmodifier
任意。 これを使用して、これらの定数にアクセスできるコードを指定します。
Public、Protected、Friend、Protected Friend、Private、Private Protected を使用できます。
Shadows
任意。 これを使用して、基本クラスのプログラミング要素を再宣言して非表示にします。 「 影」を参照してください。
constantlist
必須。 このステートメントで宣言されている定数の一覧。
constant
[ ,
constant
... ]
各 constant
には、次の構文と部分があります。
constantname
[ As
datatype
] =
initializer
部分 | 説明 |
---|---|
constantname |
必須。 定数の名前。 「宣言された要素名」を参照してください。 |
datatype |
Option Strict が On の場合は必須です。 定数のデータ型。 |
initializer |
必須。 コンパイル時に評価され、定数に割り当てられる式。 |
注釈
アプリケーションで変更されない値がある場合は、名前付き定数を定義し、リテラル値の代わりに使用できます。 名前は、値よりも覚えやすいです。 定数は 1 回だけ定義し、コード内の多くの場所で使用できます。 新しいバージョンで値を再定義する必要がある場合は、変更する必要がある唯一の場所は Const
ステートメントです。
Const
は、モジュール レベルまたはプロシージャ レベルでのみ使用できます。 つまり、変数の 宣言コンテキスト はクラス、構造体、モジュール、プロシージャ、またはブロックである必要があり、ソース ファイル、名前空間、またはインターフェイスにすることはできません。 詳細については、「 宣言コンテキストと既定のアクセス レベル」を参照してください。
(プロシージャ内の) ローカル定数は既定でパブリック アクセスであり、アクセス修飾子は使用できません。 クラスとモジュールのメンバー定数 (プロシージャ外) は既定でプライベート アクセス、構造体メンバー定数は既定でパブリック アクセスです。 アクセス修飾子を使用してアクセス レベルを調整できます。
準則
宣言コンテキスト。 モジュール レベルで宣言されている定数は、プロシージャの外部にある メンバー定数です。これは、それを宣言するクラス、構造体、またはモジュールのメンバーです。
プロシージャ レベルで宣言された定数は ローカル定数です。プロシージャまたはそれを宣言するブロックに対してローカルです。
属性。 属性は、ローカル定数ではなくメンバー定数にのみ適用できます。 属性はアセンブリのメタデータに情報を提供します。これは、ローカル定数などの一時ストレージでは意味がありません。
修飾子。 既定では、すべての定数が
Shared
、Static
、およびReadOnly
されます。 定数を宣言するときに、これらのキーワードを使用することはできません。プロシージャ レベルでは、
Shadows
またはアクセス修飾子を使用してローカル定数を宣言することはできません。複数の定数。 同じ宣言ステートメントで複数の定数を宣言し、それぞれに
constantname
部分を指定できます。 複数の定数はコンマで区切られます。
データ型の規則
データ型。
Const
ステートメントでは、変数のデータ型を宣言できます。 任意のデータ型または列挙型の名前を指定できます。既定の型。
datatype
を指定しない場合、定数はinitializer
のデータ型を受け取ります。datatype
とinitializer
の両方を指定する場合は、initializer
のデータ型をdatatype
に変換できる必要があります。datatype
もinitializer
も存在しない場合、データ型は既定でObject
になります。異なる型。 宣言する変数ごとに個別の
As
句を使用して、定数ごとに異なるデータ型を指定できます。 ただし、共通のAs
句を使用して、複数の定数を同じ型として宣言することはできません。初期化。
constantlist
内のすべての定数の値を初期化する必要があります。initializer
を使用して、定数に割り当てる式を指定します。 式には、リテラル、既に定義されている他の定数、および既に定義されている列挙メンバーの任意の組み合わせを指定できます。 算術演算子と論理演算子を使用して、このような要素を組み合わせることができます。initializer
で変数または関数を使用することはできません。 ただし、CByte
やCShort
などの変換キーワードを使用できます。AscW
を定数String
またはChar
引数で呼び出す場合は、コンパイル時に評価できるため、使用することもできます。
行動
範囲。 ローカル定数には、プロシージャまたはブロック内からのみアクセスできます。 メンバー定数は、クラス、構造体、またはモジュール内のどこからでもアクセスできます。
資格。 クラス、構造体、またはモジュールの外部のコードでは、メンバー定数の名前を、そのクラス、構造体、またはモジュールの名前で修飾する必要があります。 プロシージャまたはブロックの外側のコードは、そのプロシージャまたはブロック内のローカル定数を参照できません。
例 1
次の例では、 Const
ステートメントを使用して、リテラル値の代わりに使用する定数を宣言します。
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
例 2
データ型がObject
定数を定義すると、Visual Basic コンパイラによって、Object
ではなく、initializer
の型が提供されます。 次の例では、定数 naturalLogBase
の実行時の型は Decimal
。
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
前の例では、getType 演算子によって返されるType オブジェクトに対して ToString メソッドを使用します。Typeは、CStr
を使用してString
に変換できないためです。
こちらも参照ください
.NET