Public Sub out(ByRef a As Integer, ByRef b As Integer)
Module Module1 Sub Main() Dim a As Integer = 2 Dim b As Integer = 5 'この書き方なら、a, b というデータをもとにして、 '左辺の変数が書き換えられるという事が明確になります Dim result = Example1(a, b) MsgBox(result.Item1) MsgBox(result.Item2) Dim results() = Example2(a, b) MsgBox(results(0)) MsgBox(results(1)) 'この書き方だと、呼び出し元のコードを見ただけでは、 'a, b のデータが書き換わることが分かりにくいです Out(a, b) MsgBox(a) MsgBox(b) End Sub '複数の値を返すためにタプルを使う場合 Public Function Example1(a As Integer, b As Integer) As Tuple(Of Integer, Integer) Return Tuple.Create(CInt(a ^ 2), CInt(b ^ 2)) End Function '複数の値を返すために配列を使う場合 Public Function Example2(a As Integer, b As Integer) As Integer() Return {CInt(a ^ 2), CInt(b ^ 2)} End Function '引数の内容を差し替えるために ByRef を使う場合 Public Sub Out(ByRef a As Integer, ByRef b As Integer) a = a ^ 2 b = b ^ 2 End Sub End Module