連載:放課後VB教室

第1回 値型と参照型と大福研究会

羽山 博
2008/06/06
Page1 Page2

参照型の変数

実は文字列型の変数の宣言は簡略化されていて、整数などの値型の変数と同じように書けるようになっている。本来の姿はこんな感じなんだ。


Dim Message As String


   

Message = New String("放課後VB教室")

         

まず、 ではString型のデータを参照するための変数Messageが宣言される。図で表すとこういう感じだ。


図5 String型の変数Messageを宣言する

では、Newキーワードにより文字列を入れるための箱が新しく作られ、そこに文字列が入れられる。箱というよりはオブジェクトといった方が正確なんだけど、まあそれはいいとしよう。これも図にしておこう。


図6 文字列(オブジェクト)を作成する

で、新しい箱を作るとその「参照」が返される。つまり、この箱はどこにありますよ、という位置情報が返される。宝の地図の例えでいえば、宝の場所が返される。それを でMessageという変数に代入するというわけだ。


図7 String型の変数に文字列の参照を代入する

図の中の「200」というのは、文字列がどこにあるかという場所を示す値だと思ってもらっていい。考え方が分かるように、仮に200と書いただけだから、実際の値がいくらか、なんてことは気にしなくていいよ。

変数Messageに代入されるのは文字列そのものじゃなくて、文字列がどこにあるかといった情報ってこと?

そう。Messageという変数を見れば、実際の文字列がどこにあるかが分かるよね。だから、普通こういう図で表す。


図8 String型の変数が文字列を参照しているイメージ

あ、最初に先生が書いた図になった!

この図の矢印はデータの流れを表しているんじゃなくて、こっちを見れば実体がありますよ、ということを表しているわけだ。「見る」というのをちょっと気取っていったのが「参照する」だと思えばいい。

なるほど、分かってきました。いままで「変数はデータを入れる箱」としか考えていませんでしたが、大ざっぱな理解じゃいけないんですね。ラスクくんも分かったかな?

なにを偉そうに!

String型はよく使うので、値型の変数と同じような書き方で宣言できるようになっているというわけだ。サブローくんもラスクちゃんもオーケーかな?

はーい。よく分かりました。

じゃあ、ご褒美に甲月堂の草大福をあげよう。はい。

うわ。ネスト先生、いったいどこから!

わーい、イリュージョンだぁ!

さあて、もぐもぐ、値型と参照型の違いも分かったことだし、先生、カラオケにでも行きますか。ラスクも行くよね?

おごってくれるなら行く!

だそうです、もぐもぐ、ネスト先生。

食べながらしゃべらない! 実はまだ続きがあるんだけど、まあいいや。One Thing At A Time(1回に1つのこと)ともいうし。

やったー。アニソン歌いまくるぞぉ。

え、ラスクってそんな趣味だったっけ?

(つづく)

ラスクちゃんのまとめコーナー


  • Visual Basicの変数には、値型と参照型があります。
  • Integer型やDouble型などは値型です。
  • String型は参照型です。
  • 値型の変数にはデータが入れられますが、参照型の変数には実際のデータがどこにあるかという情報が入れられます。

 




まだまだ続きまーす。End of Article

 

 INDEX
  放課後VB教室
  第1回 値型と参照型と大福研究会
    1.値型の変数
  2.参照型の変数
 
インデックス・ページヘ  「放課後VB教室」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH