FunctionとProcedureの主な違いは、Functionが特定のタスクを実行し、呼び出し元のコードに値を返すプロシージャであるのに対し、Procedureはプログラム内の実行可能なステートメントのブロックである点です。
Visual Basic (VB.NET)は、Microsoft社が開発した.NETフレームワーク上に実装されたプログラミング言語です。
現代的で汎用的なプログラミング言語です。
効率的なプログラムを開発するのに役立ち、言語の習得も容易です。
さらに、VBは標準ライブラリ、デリゲート、プロパティ、イベント、インデクサなど、さまざまな機能を提供します。
関数とプロシージャは、Visual Basic Programmingに関連する2つの概念です。
実行可能な文はすべてプロシージャの中に入れる必要があります。
プロシージャの種類としては、Function、Sub、Operatorなどがあります。
VBにおける関数とは
関数とは、Function文とEnd Function文に囲まれた手続きです。
関数は、あるタスクを実行した後、呼び出し元のコードに制御を返します。
制御を渡すときに、呼び出し元のコードに値も返します。
プログラマは、モジュール、クラス、構造体の中に関数を作成することができます。
関数はデフォルトでパブリックです。
したがって、定義されたクラス、構造体、モジュールにアクセスできるアプリケーションのどこからでも、関数を呼び出すことができます。
さらに、関数は変数、定数、式などの引数を取ります。
呼び出し側のコードでは、これらの引数を渡します。
Visual Basic で関数を宣言する基本構文は次のとおりです。
[修飾子] 関数 FunctionName [(ParameterList)] As ReturnType
[ステートメント]
関数の終了
VBにおけるプロシージャとは
プロシージャとは、宣言文とそれに対応する終了宣言で囲まれた文のブロックのことです。
プログラム中の各実行文はプロシージャの中にあります。
プログラマは、プロシージャをコード内の他の場所から呼び出すことができ、これは、プロシージャコールと呼ばれます。
プロシージャは、実行が完了すると、呼び出したコードに制御を戻します。
これを呼び出し側コードと呼びます。
プロシージャは、呼び出す際に様々なデータを操作する必要があります。
そのため、プログラマはプロシージャーコールの一部としてプロシージャーに情報を渡すことができます。
パラメータは0個でも複数でもかまいません。
さらに、プロシージャの各パラメータは、プロシージャ呼び出しの引数を定義します。
プロシージャには様々な種類があります。
そのうちのいくつかを以下に示す。
サブプロシージャ – ある動作を実行する。
呼び出し元のコードに値を返すことはない。
イベント処理プロシージャ – ユーザーの操作やプログラムによって発生するイベントによって発生するプロシージャです。
演算子手続き – オペランドの一方または両方が新しく定義されたクラスまたは構造体であるときの標準演算子の動作を定義する。
プロパティプロシージャ – オブジェクトやモジュールのプロパティの値を返したり、代入したりする。
全体として、プロシージャは大きなプログラムをより小さな単位に分割するのに役立つ。
したがって、これによってコードがより読みやすくなる。
さらに、プロシージャは、繰り返し提供されるタスクを実行する際にも便利です。
また、コードの修正やデバッグを簡単に行うことができます。
VBにおける関数とプロシージャの違い
定義
関数とは、FunctionとEnd Functionで囲まれたプロシージャのことです。
一方、プロシージャは、宣言文とそれに対応する終了宣言で囲まれたVisual Basic文のブロックです。
このように、関数とプロシージャの主な違いは以下のとおりです。
使用方法
プロシージャがコードを読みやすく、変更しやすく、デバッグしやすくするのに役立つのに対して、関数は含まれるタスクを実行するのに役立ちます。
したがって、これが関数とプロシージャの機能的な違いです。
カテゴリー分類
また、関数は手続きの一種であり、手続きは関数の一般化である。
結論
Visual BasicではFunctionとサブルーチンは同じように使われますが、両者には違いがあります。
FunctionとProcedureの主な違いは、Functionが特定のタスクを実行し、呼び出し元のコードに値を返すプロシージャであるのに対し、Procedureはプログラム内の実行可能なステートメントのブロックである点です。
簡単に言うと、ファンクションはプロシージャです。