Как определить функцию как сумму всех функций в ParraArray в VB.NET
У меня есть функция 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
Параметры функции - это массив функций F(), который принимает значение double и возвращает значение double. Я хотел бы определить функцию G(x как Double) как Double внутри вышеупомянутой функции как сумму всех F(x), но то, что я пробовал до сих пор, дало мне синтаксические ошибки. Может ли кто-нибудь помочь мне? Высоко ценится.
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