/// <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(); } }
/// <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(); } }
/// <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(); } }