2

次のようなVB.NET関数があります。

Public Function Equilibrium(ParamArray F() As Func(Of Double, Double)) As Boolean

  'I would like to define a function
  ' G(x) = sum of all F(x) 
End Function

関数のパラメーターは、double を受け取り、double を返す関数 F() の配列です。関数 G(x as Double) を上記の関数内の Double としてすべての F(x) の合計として定義したいと思いますが、これまでに試したことで構文エラーが発生しました。誰でも私を助けてもらえますか?大変感謝しています。

4

1 に答える 1

1

これは機能しているようです。それがあなたの考えたものかどうかを確認してください...

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim f As New List(Of Func(Of Double, Double))
    f.Add(AddressOf fTest)
    f.Add(AddressOf fTest)
    f.Add(AddressOf fTest)
    Dim b As Boolean = Equilibrium(f.ToArray)
End Sub

Public Function fTest(value As Double) As Double
    Return Math.PI * value
End Function

Public Function Equilibrium(ParamArray F() As Func(Of Double, Double)) As Boolean
    Dim input As Double = 2.38
    Dim G As Func(Of Double, Double) =
        Function(v As Double) As Double
            Return (From fItem As Func(Of Double, Double) In F
                    Select fItem(v)).Sum
        End Function
    Dim sum As Double = G(input)
    ' ...
End Function
于 2014-08-08T10:50:12.223 に答える