protected void CacheVariables(IOperand oper) { if (oper is IVariableContainer) { UniqueVariables.AddRange(((IVariableContainer)oper).Variables); } }
protected void CacheVariables(IOperand oper) { if (oper is IVariableContainer) { foreach (var item in ((IVariableContainer)oper).Variables) { UniqueVariables.Add(item); } } }
protected IVariable GetVariable <T>(string name) where T : IConvertible { IVariable output; output = UniqueVariables.FirstOrDefault(item => item.Name == name); if (output == null) { var variable = IsTyped ? new Variable <T>(name) : new Variable(name); output = variable; CacheVariables(output); } return(output); }