VB.NET 複数の戻り値を返す方法

まずはじめに、結論から言ってしまうと、関数の戻り値は常に1つです。
これは仕様上、変更できません。

しかし、1つの関数で複数の処理結果が欲しい場合があります。

そう言う場合には、ByRef(参照渡し)を使う事で実現できます。

Sub Main()
    Dim a As Integer = 100
    Dim b As Integer = 10
    Dim tasizan As Integer = 0
    Dim hikizan As Integer = 0

    keisan(a, b, tasizan, hikizan)
    Console.WriteLine("{0}, {1}", tasizan, hikizan)
End Sub

Sub keisan(data1 As Integer, data2 As Integer,
           ByRef ans1 As Integer, ByRef ans2 As Integer)
    ans1 = data1 + data2
    ans2 = data1 - data2
End Sub
110, 90

この例は、keisan関数で足し算と引き算をしてもらい、
表示するプログラムです。

keisan関数では、第3引数と第4引数が参照渡しになっており、
足し算と引き算の計算結果がそれぞれ格納されます。

変数ans1の値を変更する事でtasizanの値が変更されます。

同じく、変数ans2の値を変更する事でhikizanの値が変更されます。

これで、戻り値を使う事なく、
1つの関数で複数の結果を得る事ができました。

ByRef(参照渡し)についてはコチラのページをご覧ください。

タイトルとURLをコピーしました