public ExpressionContainer(string name, MyExpression expression) { this.Id = Guid.NewGuid(); this.DateCreated = DateTime.Now; this.Name = name; this.DateModify = DateTime.Now; this.Expression = expression; }
public void ChangeExpression(ExpressionContainer exp, MyExpression newExpression) { rw.EnterWriteLock(); try { exp.Expression = newExpression; Thread.Sleep(5000); } catch (Exception) { throw; } finally { rw.ExitWriteLock(); } }
static void Main(string[] args) { List <object> assemblyObjects = new List <object>(); string dir = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())); string[] paths = Directory.GetFiles(dir, "Expressions.*.dll"); foreach (string path in paths) { var assembly = Assembly.LoadFrom(path); List <Type> assemblyTypes = assembly.GetTypes().Where(t => Attribute.IsDefined(t, typeof(ExportClass))).ToList(); assemblyTypes.ForEach(t => { var instance = Activator.CreateInstance(t); assemblyObjects.Add(instance); }); } assemblyObjects.ForEach(o => { o.GetType().GetProperty("Mass").SetValue(o, (ParametarExpression)"Mass"); o.GetType().GetProperty("Height").SetValue(o, (ParametarExpression)"Height"); }); List <Parametar> lista = new List <Parametar> { new Parametar("Mass", 100), new Parametar("Height", 1.9) }; assemblyObjects.ForEach(o => { List <PropertyInfo> properties = o.GetType().GetProperties().Where(t => Attribute.IsDefined(t, typeof(ExportProperty))).ToList(); properties.ForEach(property => { MyExpression exp = (MyExpression)property.GetValue(o); Console.WriteLine(exp.Compile()(lista)); }); }); }
public MyExpression Manipulate() { MyExpression s = (ConstExpression)0; if (lst.Capacity != 0) { int br = 0; foreach (MyExpression exp in lst) { s = s + exp; br++; } return(s / (ConstExpression)br); } else { return(s); } }
public MyExpression Manipulate() { var instanca = new AverageManipulator(this.lst); MyExpression s = (ConstExpression)0; if (this.lst != null) { int br = 0; foreach (MyExpression exp in Lst) { s = s + ((exp - instanca.Manipulate()) * (exp - instanca.Manipulate())); br++; } return(s / (ConstExpression)(br - 1)); } else { return(s); } }
static double Calculate(MyExpression expression) => expression switch { ("+", var x, var y) => x + y,
public override void Recalculate() { MyResult = (T)MyExpression.Evaluate(); }
static double Calculate(MyExpression expression) => expression switch { { Operand : "+", X : var x, Y : var y } => x + y,
public static void Printf(this MyExpression exp) { Console.WriteLine(exp.GetString()); }