VBの変数など

VB2005を使っていくうちに、デリゲートやジェネリックなど微妙にポインタを意識させられます。

そこで、重要なのが値型と参照型でありスタックとヒープです。

MSDNに非常にわかりやすく説明されているので、詳しくは「3-3 配列」を参照。

値型と参照型

それ自身のメモリに実体を保持する場合、値型といいます。また、実体の入ったメモリのアドレスを 保持する場合、参照型といいます。

VB2005では、数値型やBoolean、char、Date、構造体、列挙型などが値型になります。

参照型には、String、クラス、デリゲートなどがあります。

スタックとヒープ

.NET FrameworkのCLRは、データを格納するメモリ上の領域として「スタック」と「ヒープ」を利用しています。

ローカル変数を使用する場合、スタックに領域が確保されスコープを抜けると解放されます。Newキーワードを 使用する場合ヒープ領域にメモリが確保されます。

MFCなどを使用していた場合、以前はNewしたものはDeleteしなければならなかったのですが、CLRではメモリの解放を ガベージコレクタが行ってくれます。