/// <summary> /// Добавляем переменную /// </summary> /// <param name="name">Название переменной</param> /// <param name="owner">Название коллесции переменных</param> /// <param name="isEdit">Редактируемая переменная или нет</param> /// <param name="type">Тип переменной</param> /// <param name="expression">Строка выражения</param> /// <param name="value">Объект значения</param> /// <param name="min">Объект минимального значения</param> /// <param name="max">Объект максимального значения</param> /// <param name="step">Объект значения шага</param> private void AddVariable(string name, string owner, bool isEdit, Type type, string expression, object value, object min = null, object max = null, object step = null) { Variable item = null; if (_variables.TryGetValue(name, out item) == false) { item = new SystemVariable(name, !isEdit, (Value)Activator.CreateInstance(type, new object[] { value, expression })); if (min != null) { item.Min = (Value)Activator.CreateInstance(type, new object[] { min, null }); } if (max != null) { item.Max = (Value)Activator.CreateInstance(type, new object[] { max, null }); } if (step != null) { item.Step = (Value)Activator.CreateInstance(type, new object[] { step, null }); } _variables.Add(item.Name, item); item.IsLookExpression = true; } if (owner != null) { MasterCollectionVariable.FindCollectionVariable(owner).Add(item); } }
/// <summary> /// Производит действия для создания объектов /// </summary> internal void Create( ) { AddCollection("Global variables", MasterCollectionVariable, true); AddCollection("Local variables", MasterCollectionVariable, true); CurrentCollectionVariable = (CollectionVariable)MasterCollectionVariable.Clone( ); Compile( ); }