8

パラメータの数が不明なメソッドを作成する方法はありますか?

そしてそれがこの場合:

  • このメソッド内でそれらにアクセスするにはどうすればよいですか?
  • それらは同じタイプのものである必要がありますか?
4

2 に答える 2

13

はいはい。

可能であり、すべてが同じ型である必要があります。さまざまな型を渡す必要がある場合は、代わりにオブジェクトデータ型を使用して、関数内でボックスを解除してください。ParamArrayを使用します。

' 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 に答える