構造体やクラス内にやらせたい動きをメソッドとして書いて
複数に伴う同じ処理を定義できます。
定義(メソッドの種類)には2つありまして、
「Sub」 と 「Function」 の宣言があります。
Subの書き方は
Sub [メソッド名] ([パラメータ],・・・)
「なんらかの処理」
End Sub
Functionの書き方は
Function [メソッド名] ([パラメータ],・・・) As [データ型]
「なんらかの処理」
End Function
となります。
パラメータは、そのメソッドが動くときに使う引数で
料理で言う「材料」です。
Sub と Funtion の違いは戻り値があるないでしょうか
Functionのあとには「As データ型」がくっついています。
たとえば:0を除いた自然数か判断するの関数メソッド
Function NaturalNumber ( ByVal a as Integer ) As Boolean
If a > 0 then
Return True
Else
Return False
End If
End Function
とすると
材料のIntegerが自然数であれればReturn キーワードを使いTrueを返し
そうでなければFalseを返します。
Subの中でもReturnキーワードが使えますが、
Return [値]という風に
返す値が指定できないし、あまり一般的ではありません。
また、パラメータ内でよく見るByValとByRefのキーワードは、
値渡しと参照渡しということを宣言するもので
By Value と By Reference なんでしょうか?(勝手に想像していますが、ひとりごとってことで)
パラメーターの値がメソッドの中でどの様に扱われるのかという宣言になります。
ちなみに何もしないとVisualStudioでは、ByValと見なされ、勝手に表示されてしまいます。
Structure と Class の時と同じ動きをするのですが、
ByRefで引っ張ってくると、
その変数に他の値を代入してしまったら、
そのメソッドが終了して帰ったときは参照型の特性で、元の変数にも代入されて、値が変わってしまいます。
(値型と参照型を参照してください。)
料理するときに完成をイメージして始めるように、
引数に大して、値として利用するのか、参照することのメリットを利用するのかを考えて、書いていきたいものです。