VBScriptではクラスを作ることができます。
publicとかprivateなどの可視性も定義できました。
VBScriptを侮っていたのですが、意外と色々と揃ってて、Windowsで何かしたいときは便利なのかもしれません。
データ型という概念はありません。
VBScriptのクラスは以下のような構文で作ります。
コード
Class クラス名
'中に色々書く
End Class
使う側は、
Set 変数名 = New クラス名
という使い方をします。
クラスのインスタンスを解放するには、
Set 変数名 = Nothing
と書きます。
C#にもあったデストラクタという機能は使えます。
デストラクタとは、クラスのインスタンス解放時に自動的に実行される特別なプロシージャのことです。
デストラクタは
コード
という構文で定義します。
Private Sub Class_Terminate()
End Sub
コンストラクタは
コード
Private Sub Class_Initialize()
End Sub
という構文で定義します。
サンプルを作ってみます。
コード
これを実行すると、以下のように表示されます。
Option Explicit
Dim clazzA
Dim clazzB
Set clazzA = New SampleClass
Set clazzB = New SampleClass
clazzA.setValue1 = 100
clazzA.setValue2 = 300
clazzA.add
clazzB.setValue1 = 7000
clazzB.setValue2 = 8000
WScript.Echo "インスタンス1の結果↓"
clazzA.showResult
WScript.Echo "インスタンス2の結果" & clazzA.add
Class SampleClass
Dim val1
Dim val2
Dim sum
'コンストラクタ
Private Sub Class_Initialize()
val1 = 0
val2 = 0
End Sub
Private Sub Class_Terminate()
WScript.Echo "デストラクタ"
End Sub
Public Property Let setValue1(value)
val1 = value
End Property
Public Property Let setValue2(value)
val2 = value
End Property
'メソッドの戻り値は、メソッド名と同じ変数に入れればいい
Public Function add()
sum = val1 + val2
add = sum
End Function
Public Function showResult()
WScript.Echo "結果は:" & sum
End Function
End Class
Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. インスタンス1の結果↓ 結果は:400 インスタンス2の結果400 デストラクタ デストラクタ ***** script completed - exit code: 0 *****
▼以下はおすすめ記事です▼
「リソースが足りません!人を増やすか期限を延ばしてください」→上司「頑張ればできる!」
SIerの業務用パソコンはずっと「メモリ4GB」!贅沢を言うな!
SIerにおけるソフトウェアテストの考え方
会社にいた仕事をしないおじさん(ただし年収は2000万)の思い出
なぜ大企業の会社員は意識ばかり高くなるのか?