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

変数とプロパティはどちらも、アクセスできる値を表します。 ただし、ストレージと実装には相違点があります。

変数

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

プロパティ

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

相違点

次の表に変数とプロパティのいくつかの重要な相違点を示します。

相違点 変数 プロパティ
宣言 単一の宣言ステートメント コード ブロック内の一連のステートメント
実装 単一のストレージ場所 実行可能なコード (プロパティ プロシージャ)
記憶域 変数の値に直接関連付けられる 通常、プロパティの包含クラスまたはモジュールの外部では使用できない内部ストレージがあります。

プロパティの値は格納された要素として存在する場合と存在しない場合があります 1
実行可能なコード None 少なくとも 1 つのプロシージャが必要です。
読み書きアクセス 読み書き、または読み取り専用 読み書き、読み取り専用、または書き込み専用
カスタム アクション (値を受け入れ、または返すことに加えて) サポートできません プロパティ値の設定または取得の一部として実行できます。

1 変数とは異なり、プロパティの値はストレージの単一の項目に直接対応しない場合があります。 利便性やセキュリティを高めるためにストレージが各ピースに分割される場合や、値が暗号化された形式で格納される場合があります。 このような場合、Get プロシージャによって各ピースの組み立てまたは格納されている値の暗号化の解除が行われ、Set プロシージャによって新しい値の暗号化または構成ストレージへの分割が行われます。 プロパティ値は時刻のように一時的なものである可能性があります。その場合は、プロパティにアクセスするたびに Get プロシージャによってそれが即座に計算されます。

関連項目