Я хочу создать метод в качестве выражения математики оценщика для данногоМожем ли мы переместить Dummy из глобального пространства имен в мое собственное пространство имен?
- ввода выражения математической точки х и у, где являются комплексными числами,
- входа х, который представляет собой комплексное число,
- ввод y, который также является комплексным числом.
using Microsoft.CodeAnalysis.CSharp.Scripting;
using Microsoft.CodeAnalysis.Scripting;
using System;
using System.Numerics;
using System.Text.RegularExpressions;
public class Dummy
{
public Complex x;
public Complex y;
}
namespace Simpler
{
static class Program
{
public static Complex Function(this string e, Complex x, Complex y)
{
Script<Complex> s = CSharpScript.Create<Complex>(e, globalsType: typeof(Dummy));
Complex z = s.RunAsync(new Dummy { x = x, y = y }).Result.ReturnValue;
return z;
}
static void Main(string[] args)
{
Complex x = new Complex(1, 1); // x = 1 + i
Complex y = new Complex(0, 1); // y = i
//string e = "x*y"; // x*y = (1 + i)* i = i + i^2 = i - 1 = -1 + i
string e = "x/y"; // x/y = (1 + i)/ i = 1/i + 1 = -i + 1 = 1 - i
string lhs = Regex.Replace(e, "x", x.ToString());
lhs = Regex.Replace(lhs, "y", y.ToString());
Console.WriteLine($"{lhs} = {e.Function(x, y)}");
}
}
}
Вопросы
Можем ли мы двигаться Dummy
из глобального пространства имен собственного пространства имен Simpler
?
Да .. Вы пробовали? – Nico