Visual Basic のプロパティと変数の違い
更新 : 2007 年 11 月
変数とプロパティは、いずれもアクセス可能な値を表します。しかし、格納と実装が異なります。
変数
変数は、メモリ内の場所に直接対応します。変数は、1 つの宣言ステートメントで定義します。変数は、プロシージャ内で定義され、そのプロシージャ内でのみ使用できるローカル変数と、モジュール、クラス、または構造体の中で定義され、プロシージャ内では定義されないメンバ変数のいずれかです。メンバ変数はフィールドとも呼ばれます。
プロパティ
プロパティは、モジュール、クラス、構造体で定義されるデータ要素です。プロパティは、Property と End Property ステートメントの間のコード ブロックで定義します。Get プロシージャか Set プロシージャ、またはこの両方を含むコード ブロックです。これらのプロシージャは、プロパティ プロシージャまたは プロパティ アクセサと呼ばれます。プロパティの値を取得および格納するだけでなく、アクセス カウンタの更新などのカスタム動作を実行することもできます。
相違点
次の表に、変数とプロパティの主な違いをまとめます。
異なる点 |
変数 |
プロパティ |
---|---|---|
宣言 |
1 つの宣言ステートメント |
コード ブロック内の一連のステートメント |
実装 |
1 つの格納場所 |
実行可能コード (プロパティ プロシージャ) |
Storage |
変数の値に直接関連付けられる |
一般的に、プロパティに含まれるクラスまたはモジュールの外部からはアクセスできない内部ストレージを持つ プロパティの値は 1 つの格納された要素として存在する場合もそうでない場合もある 1 |
実行可能コード |
なし |
最低でも 1 つのプロシージャを持つ必要がある |
読み取り/書き込みアクセス |
読み取り/書き込みまたは読み取り専用 |
読み取り/書き込み、読み取り専用、書き込み専用 |
カスタム動作 (値を受け取ったり返したりする操作以外) |
不可能 |
プロパティの値の設定または取得操作の一部として実行可能 |
1 変数とは異なり、プロパティの値はストレージの単独のアイテムに直接対応しないこともあります。ストレージが利便性やセキュリティのために分割されたり、値が暗号化されたフォームに格納されたりすることがあります。このような場合、Get プロシージャが分割された部分をアセンブルしたり、格納された値を復号化したりし、Set プロシージャが新しい値を暗号化したり、値をストレージに分割したりします。プロパティの値は、時刻のようにすぐ変わるものである場合もあります。このような場合、プロパティにアクセスすると、Get プロシージャが実行時に値を計算します。
参照
処理手順
方法 : 既定のプロパティを宣言する/呼び出す (Visual Basic)