VB.NETをつつく10-構造体・モジュール。サブルーチン♪
構造化プログラミングの記事で処理をサブルーチンとして纏める事の大事さを一緒に考えたよね? そのサブルーチンを実現するための機能がこの構造体なんだ。 実はVB.NETの実行環境であるCLIではまた違う意味を持っているんだけど、 その事についてはクラスを知らないと分からない話しなんで日を改めてつつくよ。
このシリーズの前回である 列挙体の記事では値に名前をつける方法をつっついたけど、構造体とは値だけではなくて関数(メソッド)とか変数(フィールド)を纏めるためのものなんだ。あっそうそう、構造体が持つ変数はフィールドと呼ぶピヨ。
じゃあさっそくサンプルコードを見てみよう。
Imports System
Public Structure Bird
'フィールド
Public Name As String
Public Age As Integer
'メソッド
Public Sub Talk()
Console.WriteLine("ワタシハ{0}。年は{1}だよ。", _
Me.Name, Me.Age)
End Sub
End Structure
Public Module Module1
Sub Main()
Dim b As Bird = New Bird()
b.Name = "インドリ"
b.Age = 29
b.Talk()
End Sub
End Module
このサンプルコードをじっくり見れば分かるけど、構造体はフィールドと メソッドを持てるんだ。 えっ?何故変数をフィールドと呼んだり、関数をメソッドって呼ぶかって? うーんそれは、言語設計者の趣味じゃないかな?多分、VB.NETを作った人はこう呼べば分かりやすいと思ったんだろうね。 短いけど構造体について今言えることはこれだけピヨ。
おっと、C#の記事ではここで終わっているけど、VB.NETにはModuleがあるよね。 ボクはこれをお勧めしないピヨ。ModuleはVB時代の過去の遺産なんで今使う必要な一切ないんだ。 みんな、これを使うぐらいならStructureかClassを使おう!
エントリポイント(Mainメソッド)があるところはClassがお勧め!
今度こそこれで終わり。次回へ続く・・・