public void ResetParam(string nameOfProp) { RemoveParam(nameOfProp); var currVal = (double)this.GetType().GetProperty(nameOfProp).GetGetMethod().Invoke(this, null); var scnParam = new ScnPrm(nameOfProp, this, currVal); this.GetType().GetProperty("p" + nameOfProp).GetSetMethod().Invoke(this, new object[] { scnParam }); var GetDeleg = (Func <double>) this.GetType().GetProperty(nameOfProp).GetGetMethod().CreateDelegate(typeof(Func <double>), this); var SetDeleg = (Action <double>) this.GetType().GetProperty(nameOfProp).GetSetMethod().CreateDelegate(typeof(Action <double>), this); scnParam.GetVal = t => GetDeleg(); scnParam.SetVal = SetDeleg; }
public bool SetDiff(IScnPrm prm, Func <double, double> dPrmdtF, string dname = "") { if (!Prms.Contains(prm)) { return(false); } var dprm = new ScnPrm(); dprm.GetVal = new Func <double, double>(dPrmdtF); bool newname = dname == ""; if (!newname) { dprm.Name = dname; } AddDiffPropToParam(prm, dprm, getNewName: newname); return(true); }