ProgrammingVB/Classic VB 開発者

Visual BasicにおけるSubとFunctionの違いを説明してください。それぞれをいつ、なぜ使用するのですか?

Hintsage AIアシスタントで面接を突破

回答。

Visual Basicには主に2種類の手続きがあります:SubFunction。主な違いは、Subは値を返さないのに対し、Functionは常に指定された型の値を返すという点です。

  • Subは、結果を返す必要がない操作(例:状態の変更、画面への出力、ファイル操作)を実行するために使用されます。

  • Functionは、何らかの値を返す必要がある場合(例:計算、ロジックの結果を取得する)に使用されます。

例:

Sub ShowMessage(ByVal message As String) MsgBox(message) End Sub Function Square(ByVal x As Integer) As Integer Square = x * x End Function ' 使用例: ShowMessage("Hello!") Dim result As Integer result = Square(5) ' result = 25

トリック質問。

VB6におけるSubとFunctionの違いは何ですか?Sub内でReturn文を使用することは可能ですか?

正しい答え: VB6ではReturn文はFunctionのみに使用されます。Subでは手続きを終了するためにExit Subを使用できますが、Returnを値と共に使用することはできません。多くの人はReturnとExitを混同しますが、これらは異なる役割を果たします。

Sub ExampleSub() ' Return ' エラー:Sub内では使用できない Exit Sub ' 正しい End Sub Function ExampleFunction() As Integer ExampleFunction = 5 ' または ' Return 5 ' VB.NETでは許可される End Function

トピックに関する実際のエラーの例。


物語

プロジェクトで、ある開発者がFunctionの代わりにSubを使用し、値を返す必要があることを忘れました。その結果、計算された値はどこにも保存されず、ロジックが壊れ、テストが通らなくなりました。


物語

大規模なWindows Formsアプリケーションで、Subを使用して値の検証を行いました。データは結果に応じて変更される必要がありましたが、Subは論理値を返すことができませんでした。そのため、検証が機能せず、計算にエラーが発生しました。


物語

初心者が他のプログラミング言語のようにSub内でReturn文を使用しようとしたため、アプリケーションのコンパイルが停止しました。原因を探るのに数時間を失い、SubではExit Subが使用され、ReturnはFunctionでのみ使用されることを思い出すまでかかりました。