よろずやネット

最近はLibreofficeにハマっています。

変数の型(クラスで定義)

私は、シロウトの我流でしたので、クラスという概念があることを長い期間知らないままでした。
クラスを始めて知った時には「目からウロコ」でした。
Visual Basic (VB) 初心者の方にはとっつきにくい概念だと思いますので、ちょっと解説します。

Visual Basic .Netで扱うすべてのデータには「型」があり、使用前に宣言をしなければなりません。
SharpDevelopのヘルプブラウザで、Net Framework 2.0 SDKの下記ヘルプを表示すると、いろいろなデータ型が一覧表になって出てきます。

ms-help://ms.netframework.v20.en/dv_vbalr/html/e975cdb6-64d8-4a4a-ae27-f3b3ed198ae0.htm

しかし、この基本的な型だけでは、プログラムを書いていくに当って、面倒になることがあります。

例えば、Aさん、Bさん、Cさん、Dさん、Eさんの5人の身長と体重の組み合わせを扱う場合、

Dim A_Shincho As Single = 165
Dim A_Taijyu As Single =50
Dim B_Shincho As Single = 170
Dim B_Taijyu As Single = 60
Dim C_Shincho As Single = 175
Dim C_Taijyu As Single = 65
Dim D_Shincho As Single = 180
Dim D_Taijyu As Single = 70
Dim E_Shincho As Single = 180
Dim E_Taijyu As Single = 65

と10個の変数を宣言しなければなりません。そして見た目にもすっきりしません。
上記の場合、身長と体重はセットで使われますので、「人」型のような変数あれば便利になります。
それがクラスという概念です。

それでは、実際にクラスを作っていきましょう。クラス名は人(Hito)にします。

SharpDevelopのメニューバーにて、

File > New > File

出てきたダイアログにて、
    左側のCategoriesはVB
    右側のTemplatesはClass
を選択して、適当なファイル名を入力して、Createを押す。
新規にできたファイルを開いて以下を記述する。

Public Class Hito
    Public Shicho As Single 'Hitoの身長を扱います。
    Public Taijyu As Single 'Hitoの体重を扱います。
End Class

これだけで「人」型のような変数の定義が出来上がりました。
実際に使ってみましょう。

'まず、変数宣言です。
Dim A As New Hito
Dim B As New Hito
Dim C As New Hito
Dim D As New Hito
Dim E As New Hito

'そして、変数に値の代入(初期化)です。
With A
    .Shincho=165
    .Taijyu=50
End With

With B
    .Shincho=170
    .Taijyu=60
End With

With C
    .Shincho=175
    .Taijyu=65
End With

With D
    .Shincho=180
    .Taijyu=70
End With

With E
    .Shincho=180
    .Taijyu=65
End With

'ずいぶんスッキリしました。

'値の取得は、
    MessageBox.Show(A.Shincho.ToString)
'のような感じです。