次の方法で共有


方法 : 値の変わらない変数を作成する

更新 : 2007 年 11 月

値の変わらない変数という概念は、一見矛盾しているように見えます。しかし、場合によっては定数を使用できないこともあり、そのようなときに固定値を持つ変数を使用すると便利です。このような場合に、ReadOnly (Visual Basic) キーワードを使用してメンバ変数を定義できます。

次のような場合は、Const ステートメント (Visual Basic) を使用して定数を宣言し、値を割り当てることはできません。

  • Const ステートメントが、使用するデータ型を受け付けない。

  • コンパイル時には値がわからない。

  • コンパイル時に定数値を計算できない。

値の変わらない変数を作成するには

  1. モジュール レベルで、Dim ステートメント (Visual Basic) を指定してメンバ変数を宣言し、ReadOnly (Visual Basic) キーワードを含めます。

    Dim ReadOnly timeStarted
    

    メンバ変数に対してのみ ReadOnly を指定します。これは、プロシージャ外部で、モジュール レベルの変数を定義することが必要であることを意味します。

  2. コンパイル時に単一のステートメントで値を計算できる場合は、Dim ステートメントで初期化の句を指定します。As 句の後ろに等号 (=) を付け、式を続けます。コンパイラでこの式を定数値に評価できることを確認します。

    Dim ReadOnly timeStarted As Date = Now
    

    ReadOnly 変数に値を割り当てることができるのは 1 回だけです。この値を割り当てた後は、いずれのコードもこの値を変更することはできません。

    コンパイル時に値がわからない、またはコンパイル時に単一ステートメントではこれを計算できない場合は、実行時にコンストラクタ内で値を割り当てることができます。実行時に値を割り当てるには、クラス レベルまたは構造体レベルで ReadOnly 変数を宣言する必要があります。そのクラスまたは構造体のコンストラクタ内では、変数の固定値を計算し、コンストラクタから返される前にその値を変数に割り当てます。

参照

参照

WriteOnly

Const ステートメント (Visual Basic)