Mastersign.Expressions

Die Verwendung von Mastersign.Expressions ist sehr einfach:

using System;
using de.mastersign.expressions;
static class Program
{
    static void Main()
    {
        // Erzeuge den Auswertungskontext für den Ausdruck
        var context = new EvaluationContext();
        // Lade die Standardfunktionen (Mathematik, Zeichenkettenverarbeitung, ...)
        context.LoadAllPackages();
        // Füge eine eigene Variable hinzu
        context.SetVariable("x", 4);
        // Füge eine eigene Funktion hinzu
        context.AddFunction("neg", (Func<double, double>)(v => -v));
        // Lege die Parameterliste fest
        context.SetParameters(new ParameterInfo("a", typeof(int)));
        // Kompiliere den Ausdruck zu einem Lambda-Delegat
        var function = context.CompileExpression<int, double>("sin(PI * neg(10.0 + x)) + a");
        // Rufe den Delegat auf und gib das Ergebnis aus
        Console.WriteLine(function(2));
    }
}

Variablen werden im Normalfall so kompiliert, dass sie zu jeder Zeit immer den aktuellen Wert im Auswertungskontext repräsentieren. Optional kann der Wert einer Variablen als konstant festgelegt werden, dann wird der Wert der Variablen als Konstante in den Delegaten kompiliert. Nachträgliche Änderungen, an einer als konstant markierten Variablen im Kontext, wirken sich nicht auf bereits kompilierte Delegaten aus. Dafür ist die Performance von Konstanten besser als die von echten Variablen.

Joomla templates by a4joomla