1

我将一些可选参数作为元组传递给函数,因为所有这些都必须一起传递或根本不传递。我希望能够以数字方式迭代元组的元素,并对每个项目执行操作。例如:

Public Function myFunction(Optional t As Tuple(Of Integer, String, SomeType) = Nothing) As Integer
    For i = 0 to 2
        someCollection(i).someMethod(t(i)) 'Pseudocode for accessing ith item in tuple
    Next
End Function

解决问题的一种方法是使用列表,但随后我无法强制执行成员数量(将始终是固定的)和每个成员的类型。另一种方法是用 等将语句写出三遍t.Item1t.Item2但这很难看。

有没有办法访问nth元组中的项目?

注意:如果可能的话,我想用一个元组来完成这个,即使我知道我可以创建替代方法签名。

4

1 回答 1

2

(当然,我会把它变成答案!)

为方便起见,您可以将项目放入数组中;在这一点上,维护类型并不是真正的问题,因为如果你对所有这些都做同样的事情,他们需要有某种通用的基类或接口。

Dim a() As Object = {t.Item1, t.Item2, t.Item3}

然后迭代它。

于 2013-05-22T20:28:18.617 回答