protected override JToken Serialize(MathExpression <TUnit> value) { if (value == null) { return(JToken.FromObject("")); } return(JToken.FromObject(value.Expression)); }
public static MathExpression <TUnit> operator /(MathExpression <TUnit> left, double right) { var result = new MathExpression <TUnit>(string.Format("({0})/{1}", left.Expression, right)); left.variables .ForEach(kvp => result.variables[kvp.Key] = kvp.Value); result.CustomConstructor = left.CustomConstructor; return(result); }
public static MathExpression <TUnit> operator *(double left, MathExpression <TUnit> right) { var result = new MathExpression <TUnit>(string.Format("{0}*({1})", left, right.Expression)); right.variables .ForEach(kvp => result.variables[kvp.Key] = kvp.Value); result.CustomConstructor = right.CustomConstructor; return(result); }
public bool Equals(MathExpression <TUnit> p) { // If parameter is null return false: if ((object)p == null) { return(false); } // Return true if the fields match: return(Expression == p.Expression); }
public MathExpression <TUnit> DeepClone() { var clone = new MathExpression <TUnit>(Expression); clone.CustomConstructor = customConstructor; foreach (var variable in variables) { clone.variables[variable.Key] = variable.Value; } return(clone); }
public override bool Equals(object obj) { // If parameter is null return false. if (obj == null) { return(false); } // If parameter cannot be cast to Point return false. MathExpression <TUnit> p = obj as MathExpression <TUnit>; if ((System.Object)p == null) { return(false); } // Return true if the fields match: return(Expression == p.Expression); }