C# 7.0以降、VB15.3以降では、上記のJavaScriptコードのような記述ができるタプルが構文としてサポートされています。 これにより、Tuple型を使わなくても、複数のスカラー値をタプルで返したり、タプルで返される戻り値を変数(スカラー値)に展開することができます。 基本的にはTuple型と同じですが、この構文では格納されている値に対して変数と同様に任意の名前をつけることができるようになっています。
複数の戻り値(タプル)をスカラー値に展開する構文 VB15.3
Imports System
Class Sample
' 引数で与えられた配列の合計と平均を同時に返すメソッド
Shared Function SumAvr(ByVal arr() As Integer) As (Long, Double)
Dim sum As Long = 0L
For Each val As Integer In arr
sum += val
Next
Dim avr As Double = sum / arr.Length
' 複数の値をひとまとめにして返す
Return (sum, avr)
End Function
Shared Sub Main()
' 呼び出し側で戻り値を展開する
(Dim sum As Long, avr As Double) = SumAvr(New Integer() {2, 5, 3, 8, 4})
Console.WriteLine("合計 = {0}", sum)
Console.WriteLine("平均 = {0}", avr)
End Sub
End Class
実行結果
合計 = 22 平均 = 4.4