Exemplo n.º 1
0
 /// <summary>
 /// Функция вызываемая при добавлении элемента типа string в коллекцию
 /// </summary>
 /// <param name="sender">Объект, в контексте которого вызывается функция</param>
 /// <param name="args">Объект события, который содержит добавляемый в коллекцию элемент</param>
 private static void AddingString(object sender, ListAddingEventArgs <string> args)
 {
     Console.WriteLine($"Добавляется элемент {args.Value}");
     ///При попытке добавления пустой строки
     if (args.Value == "")
     {
         ///Свойству Cancel присваевается значение true. Таким образом отменяется добавление
         args.Cancel             = true;
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine("Пустые строки не добавляются в коллекцию");
         Console.ResetColor();
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Функция вызываемая при добавлении элемента типа int в коллекцию
        /// </summary>
        /// <param name="sender">Объект, в контексте которого вызывается функция</param>
        /// <param name="args">Объект события, который содержит добавляемый в коллекцию элемент</param>
        private static void AddingInt(object sender, ListAddingEventArgs <int> args)
        {
            Console.WriteLine($"Добавляется элемент {args.Value}");

            ///При добавлении четного элемента
            if (args.Value % 2 == 0)
            {
                /// Свойству Cancel присваевается значение true.Таким образом отменяется добавление
                args.Cancel             = true;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Четные числа не добавляются в коллекцию");
                Console.ResetColor();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Add - метод добавления в коллекцию элемента
        /// </summary>
        /// <param name="el"></param>
        public void Add(T el)
        {
            //Если событию добаления назначена функция, то выполняется данная функция обработчик
            if (OnAdding != null)
            {
                ///eventArgs - экземпляр класса ListAddingEventArgs<T>, содержащий информацию о добавляемом
                ///элементе
                var eventArgs = new ListAddingEventArgs <T>(el);

                //выполнение функции OnAdding
                OnAdding(this, eventArgs);

                //Если свойству Cancel в объекте eventArgs было присвоено значение true, то добавление элемента
                //прерывается
                if (eventArgs.Cancel)
                {
                    return;
                }
                else
                {
                    //В противном случае происходит добавление элемента в коллекцию
                    List <T> col = collection.ToList();
                    col.Add(el);

                    if (OnAdded != null)
                    {
                        OnAdded($"В коллекцию добавлен элемент {el}");
                    }

                    //Переменной collection присваевается ссылка на коллеекцию преобразованную в массив
                    collection = col.ToArray();
                }
            }
            else
            {
                //Если событию не назначен обработчик, то просто происходит добавления элемента в коллекцию
                List <T> col = collection.ToList();
                col.Add(el);
                collection = col.ToArray();
            }
        }