VB.NET サブルーチンとファンクションの違い

      2017/09/28


サブルーチンとファンクションの違いは戻り値があるかないかです。
どちらもメソッドです。

サブルーチンとは
プログラムのまとまりをまとめたものです。
繰り返して使用されるものをまとめた手続き型の方法です。
メインルーチンに対して呼び出し側をサブルーチンと呼びます。

ファンクションとは
機能とか役割という意味があります。

ファンクションには戻り値があります。
簡単に言うとreturn文の後ろに変数を書いてます。
return文は書かないといけないので戻り値がいらないのであれば
0でもいいです。

ファンクションは指定した戻り値を呼びたし元に返します。

ファンクション内で処理した値を呼びたし元に返したい場合に使います。
引数で渡してもいいんですが引数を元に処理した結果を返したい時はどうでしょうか?
サブルーチンの場合はそこで処理が終わる場合でいいかなと考えています。

サブルーチン

構文
Sub サブルーチン名()
End Sub

サブルーチンの呼び出し
構文
サブルーチン名()

サンプルソース
------------------------------------------------------------------------------------
Sub msgA(ByVal x As Integer, ByVal y As Integer)
Dim z As Integer
z = x + y
MsgBox(z)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
msgA(1, 1)
End Sub

------------------------------------------------------------------------------------

実行結果
2と表示されます。
処理はサブルーチンに書いてしまいます。

ファンクション

構文
Function ファンクション名()
Return
End Function

ファンクションの呼び出し
構文
ファンクション名()

------------------------------------------------------------------------------------

Function msgB(ByVal x As Integer, ByVal y As Integer)
Dim z As Integer
z = x + y
Return MsgBox(z)
End FunctionPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
msgB(1, 1)
End Sub

------------------------------------------------------------------------------------

基礎文法をサンプルコードや文章で解説しています。

変数と型と演算子

インクリメント デクリメント

vb-net入門-三項演算子 IIf関数 If演算子

値型と参照型

構造体

IfとSelect Case条件文

For NextとFor Each条件文

Do While Loop条件文

イベント

イベントハンドラの追加と削除

デリケート

マルチキャストデリケート

ラムダ式

クラス

継承

隠蔽

ポリモーフィズム

抽象クラスと抽象メソッド

インターフェース

ジェネリック

LINQ

例外処理

配列

コレクション

サブルーチンとファンクション

PR



 - 基礎文法

Translate »