8

有没有办法创建一个参数数量未知的方法?

如果是这种情况:

  • 如何在这种方法中访问它们?
  • 它们必须来自同一类型吗?
4

2 回答 2

13

是的是的。

这是可能的,并且它们都必须是相同的类型,如果您需要传递各种类型,请改用对象数据类型,然后在函数中将它们拆箱。使用参数数组:

' Accept variable number of arguments 
Function Sum(ByVal ParamArray nums As Integer()) As Integer 
  Sum = 0  
  For Each i As Integer In nums 
    Sum += i 
  Next 
End Function   ' Or use Return statement like C#

Dim total As Integer = Sum(4, 3, 2, 1)   ' returns 10

有关更多信息,请参阅

于 2012-06-05T07:36:04.340 回答
1

我知道这已经得到解答,可能大多数人都会定期来这里寻求答案。@pylover 答案是正确的,但要添加它,您可以通过简单地调用Sum()函数来避免循环遍历所有项目。因此;

Function Sum(ByVal ParamArray nums As Integer()) As Integer 
  Return nums.Sum()
End Function

调用函数时

Dim total As Integer = Sum(4, 3, 2, 1)

total返回10。您可以在其上执行的其他功能,包括Max()Min()

于 2016-10-10T04:34:26.200 回答