Visual Basic のプロパティと変数の違い

更新 : 2007 年 11 月

変数とプロパティは、いずれもアクセス可能な値を表します。しかし、格納と実装が異なります。

変数

変数は、メモリ内の場所に直接対応します。変数は、1 つの宣言ステートメントで定義します。変数は、プロシージャ内で定義され、そのプロシージャ内でのみ使用できるローカル変数と、モジュール、クラス、または構造体の中で定義され、プロシージャ内では定義されないメンバ変数のいずれかです。メンバ変数はフィールドとも呼ばれます。

プロパティ

プロパティは、モジュール、クラス、構造体で定義されるデータ要素です。プロパティは、Property と End Property ステートメントの間のコード ブロックで定義します。Get プロシージャか Set プロシージャ、またはこの両方を含むコード ブロックです。これらのプロシージャは、プロパティ プロシージャまたは プロパティ アクセサと呼ばれます。プロパティの値を取得および格納するだけでなく、アクセス カウンタの更新などのカスタム動作を実行することもできます。

相違点

次の表に、変数とプロパティの主な違いをまとめます。

異なる点

変数

プロパティ

宣言

1 つの宣言ステートメント

コード ブロック内の一連のステートメント

実装

1 つの格納場所

実行可能コード (プロパティ プロシージャ)

Storage

変数の値に直接関連付けられる

一般的に、プロパティに含まれるクラスまたはモジュールの外部からはアクセスできない内部ストレージを持つ

プロパティの値は 1 つの格納された要素として存在する場合もそうでない場合もある 1

実行可能コード

なし

最低でも 1 つのプロシージャを持つ必要がある

読み取り/書き込みアクセス

読み取り/書き込みまたは読み取り専用

読み取り/書き込み、読み取り専用、書き込み専用

カスタム動作 (値を受け取ったり返したりする操作以外)

不可能

プロパティの値の設定または取得操作の一部として実行可能

1 変数とは異なり、プロパティの値はストレージの単独のアイテムに直接対応しないこともあります。ストレージが利便性やセキュリティのために分割されたり、値が暗号化されたフォームに格納されたりすることがあります。このような場合、Get プロシージャが分割された部分をアセンブルしたり、格納された値を復号化したりし、Set プロシージャが新しい値を暗号化したり、値をストレージに分割したりします。プロパティの値は、時刻のようにすぐ変わるものである場合もあります。このような場合、プロパティにアクセスすると、Get プロシージャが実行時に値を計算します。

参照

処理手順

方法 : プロパティを作成する

方法 : 複数のアクセス レベルを持つプロパティを宣言する

方法 : プロパティ プロシージャを呼び出す

方法 : 既定のプロパティを宣言する/呼び出す (Visual Basic)

方法 : プロパティに値を格納する

方法 : プロパティから値を取得する

概念

Property プロシージャ

プロシージャのパラメータと引数

参照

Property ステートメント

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