Delegate Function Operation(ByVal a As Double, ByVal b As Double) As Double Function Add(ByVal a As Double, ByVal b As Double) As Double Return a + b End Function Function Mult(ByVal a As Double, ByVal b As Double) As Double Return a * b End Function Function Div(ByVal a As Double, ByVal b As Double) As Double Return a / b End Function Function Subtract(ByVal a As Double, ByVal b As Double) As Double Return a - b End Function Sub Main() Dim op As Operation Dim res As Double op = New Operation(AddressOf Mult) res = op(2.0, 3.0) End Sub
Function Add(ByVal a As Double, ByVal b As Double) As Double Return a + b End Function Function Mult(ByVal a As Double, ByVal b As Double) As Double Return a * b End Function Function Div(ByVal a As Double, ByVal b As Double) As Double Return a / b End Function Function Subtract(ByVal a As Double, ByVal b As Double) As Double Return a - b End Function Dim Res As Double = Mult(2.0, 3.0)
Select Case Op Case "+" TextBox1.Text = Add(CDbl(TextBox2.Text), CDbl(TextBox3.Text)) '....
Select Case TextBox1.Text Case "+" TextBox5.Text = CDbl(TextBox2.Text) + CDbl(TextBox3.Text) Case "-" TextBox5.Text = CDbl(TextBox2.Text) - CDbl(TextBox3.Text) Case "*" TextBox5.Text = CDbl(TextBox2.Text) * CDbl(TextBox3.Text) Case "/" TextBox5.Text = CDbl(TextBox2.Text) / CDbl(TextBox3.Text) End Select
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Function EvalString(ByVal str As String, Optional ByRef LastError As String = "") As Object On Error Resume Next 'Projet de base Static sc As MSScriptControl.ScriptControl If sc Is Nothing Then sc = New MSScriptControl.ScriptControl sc.Language = "VBScript" End If 'Module de code Static md As MSScriptControl.Module If md Is Nothing Then md = sc.Modules.Add("Fonctions") md.AddCode("Option Explicit " & vbCrLf & _ " " & vbCrLf & _ "Function iif(Cond, TrueValue, FalseValue) " & vbCrLf & _ " If Cond Then " & vbCrLf & _ " iif = TrueValue " & vbCrLf & _ " Else " & vbCrLf & _ " iif = FalseValue " & vbCrLf & _ " End If " & vbCrLf & _ "End Function") End If 'Evaluation EvalString = md.Eval(str) LastError = sc.Error 'Déchargeons les objets On Error Resume Next sc.Reset() md = Nothing sc = Nothing End Function
Dim d As Double EvalString("1 + 2") 'Renvoi 3