次の方法で共有


方法: 値が変更されない変数を作成する (Visual Basic)

変数の値を変更しない概念は矛盾しているように見える可能性があります。 ただし、定数が実現不可能な場合があり、固定値を持つ変数を使用すると便利です。 このような場合は、 ReadOnly キーワードを使用してメンバー変数を定義できます。

次の状況では、 定数ステートメント を使用して定数値を宣言および割り当てることはできません。

  • Const ステートメントは、使用するデータ型を受け入れない

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

  • コンパイル時に定数値を計算できません

値が変更されない変数を作成するには

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

    Dim ReadOnly timeStarted
    

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

  2. コンパイル時に 1 つのステートメントで値を計算できる場合は、 Dim ステートメントで初期化句を使用します。 等号 (=)、その後に式を付けて As 句に従います。 コンパイラがこの式を定数値に評価できることを確認してください。

    Dim ReadOnly timeStarted As Date = Now
    

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

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

こちらも参照ください