Пример #1
0
 /// <summary>
 /// Осуществляет поиск колекции переменных в колекции
 /// </summary>
 /// <param name="name">Название переменной</param>
 /// <returns>Объект колекции переменных, в случае неудачи null/</returns>
 public CollectionVariable FindCollectionVariable(string name)
 {
     foreach (VariableBase variable in _variableList)
     {
         CollectionVariable collection = variable as CollectionVariable;
         if (collection != null && (collection.Name == name || (collection = collection.FindCollectionVariable(name)) != null))
         {
             return(collection);
         }
     }
     return(null);
 }
Пример #2
0
        /// <summary>
        /// Клонирование объекта значения
        /// </summary>
        /// <returns>Клон объекта</returns>
        public override object Clone( )
        {
            CollectionVariable clone = new CollectionVariable(Name, IsReadOnly);

            foreach (VariableBase variable in _variableList)
            {
                if (variable is CollectionVariable)
                {
                    clone.Add((VariableBase)variable.Clone( ));
                }
                else
                {
                    clone.Add(variable);
                }
            }
            return(clone);
        }
Пример #3
0
 /// <summary>
 /// Осуществляет рекурсивный поиск переменной в колекции
 /// </summary>
 /// <param name="name">Название переменной</param>
 /// <returns>Возврашает объект переменной, в случае неудачи null.</returns>
 public Variable FindRecursionVariable(string name)
 {
     foreach (VariableBase variable in _variableList)
     {
         Variable objectVariable = variable as Variable;
         if (objectVariable != null)
         {
             if (objectVariable.Name == name)
             {
                 return(objectVariable);
             }
         }
         else
         {
             CollectionVariable collectionVariable = variable as CollectionVariable;
             if ((objectVariable = collectionVariable.FindRecursionVariable(name)) != null)
             {
                 return(objectVariable);
             }
         }
     }
     return(null);
 }