Запись функции в файл для ее последующего вызова - C#
Формулировка задачи:
Доброе время суток.
Столкнулся со следующей проблемой: необходимо посчитать на огромном количестве точек значение функцией задаваемой пользователем. У меня в программе функция (string) разбивается, переводится в постфиксную форму и делается дерево выражения, по которому уже считается значение функции в точке. При огромных количествах повторений вычисления очень много времени тратится на обход времени. Возникает вопрос: можно ли как-нибудь, построив дерево выражения, один раз сделать файл функции, которая бы далее вызывалась в программе? Например, пользователь ввел функцию cos(x)+sin(y), а у нас появился файл с примерным содержанием:
public
double func(double x, double y)
{
return Math.Cos(x) + Math.Sin(y);
}Решение задачи: «Запись функции в файл для ее последующего вызова»
textual
Листинг программы
CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
CompilerResults result = provider.CompileAssemblyFromFile(new CompilerParameters(), "Class1.cs");
System.Reflection.Assembly resultAssembly = result.CompiledAssembly;
Type myType = resultAssembly.GetType("ClassLibrary1.Class1");
object myClassInstance = Activator.CreateInstance(myType);