【VB.Net】メソッド(関数)、プロシージャやよく使われる用語について

どうも!リョクちゃです。

今回は、VB.Netのメソッドについて理解を深めていきます。

メソッドは関数とも呼ばれていたり、プロシージャとも呼ばれています。
※ 実際はこれらについても違いがあります。

ここも触れていけたらなと思います。

ちなみに前回は、こちらになります。

どうも!リョクちゃです。 今回は、VB.Netの変数と定数について紹介していきます。 ちなみにVisualStudioに...



メソッド

メソッドとは、オブジェクト指向言語で扱われる名称で関数とも呼ばれます。

プログラムの一連の処理をまとめたモノをメソッドといいます。

VB.Netでは、メソッドの他にプロシージャと呼ばれるものがあります。

それぞれ説明していきます。

スポンサーリンク




戻り値や返り値を返すのがメソッド → Function(≒関数)

一方で、

戻り値や返り値を返さないのをプロシージャ → Sub

とそれぞれ区別されています。

コードで書くと、それぞれ下のようになります。

こんな感じになります。

メソッドやプロシージャを学ぶ上で必須となるモノ①

それが、”値渡し”と”参照渡し”といった考え方になります。

値渡し → Byval

引数(ひきすう)そのものを値として受け取ります
引数として渡す変数の値を呼び出し先で変更したくない場合に使います。

参照渡し → Byref

引数を参照する情報として受け取ります

引数として渡す変数の値を呼び出し先の処理によって変更したい場合に使います。

それぞれ形としては、

Public <Sub or Function> <メソッド orプロシージャ名>
(Byval <変数名> As <型名>, Byref <変数名> As <型名>)

になります。

実際に書いてみると、

最初にValueTestのSubプロシージャ内の変数cの値は0として表示されますが、
Testプロシージャを呼び出して実行した後は、値15が代入されて返ってきます。

これは変数cを、Testプロシージャを実行する際に参照渡しをしているからです。

参照渡しでは、呼び出し元の変数の値を呼び出し後に処理された値へと上書きがされます。

下表に変数cの状態を処理の順番ごとに流れを示します。

順番関数名変数cの状態
1ValueTest0
2Test15
3ValueTest15

参照渡しは、作成したFunctionの戻り値とは別の値を受け取りたい場合や

引数として渡した変数が処理によって変化する場合に使うと便利です。

メソッドやプロシージャを学ぶ上で必須となるモノ②

オプション引数 → Optional (Byval or Byref)

値渡しや参照渡しの先頭にOptionalを付加することで、
オプション引数として扱うことができます。

これは引数を省略したいときに使うことができます。

コードで書くと、

これを実行すると、Hello Worldと出力がされます。

あらかじめ値が決まっていて、ある処理の時だけ値を変えて、
処理を分岐させる場合には便利かと思います。

メソッドやプロシージャを学ぶ上で必須となる考え方

引数の順番 → ① Byval or Byref  ② Optional

引数を付けていくうえで、実は順番があります。

たとえば、このようなコードがあった場合、実行するとどうなるでしょう?

実はエラーとなってしまいます。

これは引数の順番が正しくないことからコンパイルエラーとなってしまいます。

正しくは、

こうなります。

まとめ

メソッド(関数)やプロシージャ、値渡しや参照渡しについて、簡単に解説しました。

プログラミング言語には、それぞれ特有の専門用語あったりします。

基本的にどのプログラミング言語においても考え方は共通なのですが、

呼び方を変えて名称づけされている場合が多く見受けられます。

例えば、メソッド≒関数のような場合。

これには意味があって関数とメソッドを区別しています。

今回は、VB.Net内で使われる用語を簡単に説明しました。

メソッドとプロシージャ

値渡しと参照渡し

メソッドで記述する引数は順番が大事

① Byval や Byref

② Optional Byval や Optional Byref

この順番を間違えるとコンパイルエラーになるので注意。

最後までご覧いただきありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク
コメントの入力は終了しました。