Написал вот такой вот код:
private void setCombineQuerys()
{
Dictionary<string, Action> temp = new Dictionary<string, Action>();
temp.Add("Проверка на категорию", checkCategoryClass);
temp.Add("Проверка на тип документа", checkPassport);
temp.Add("Проверка на активный результат", checkActiveResult);
temp.Add("Проверка на УКП", checkParticipantsUKP);
temp.Add("Проверка на ОВЗ", checkParticipantsOVZ);
Category Participants = new Category("Участники", true, temp, queryForParticipants);
ListA.Add(Participants);
temp.Clear();
temp.Add("Проверка на телефон", checkMobilePhone);
temp.Add("Проверка на почту", checkEmail);
temp.Add("Проверка на код работника", checkWorkerCode);
temp.Add("Проверка на код станционарный телефон", checkStaticPhone);
temp.Add("Проверка на специализацию", checkParticipantSpecialization);
temp.Add("Проверка на прикрепление к ппэ", checkParticipantPP);
temp.Add("Проверка на категорию", checkParticipantCategory);
Category Workers = new Category("Работники", false, temp, "");/*Заменить запрос*/
ListB.Add(Workers);
}
И вроде бы в итоге должно быть два экземпляра класса Category: Participants с 5 элементами проверок и Workers с 7 элементами, но, когда я обращаюсь к первому, то получаю в ответ 7 элементов Category Workers.
Объясните мне, почему так происходит? Прогнал по шагам: 1. Создаётся нулевой temp 2. Заполняется пятью экземплярами 2. Создаётся Participants и заполняется пятёркой temp 3. Очищается temp методом Clear() и у Participants значение temp становится нулевым. 4. temp заполняется семью экземплярами 5. Создаётся Workers и заполняется семёркой temp. Participants в этот момент также заполняется этой семёркой. Это свойство Dictionary и метода Clear?
Класс Category:
public class Category{
private string name;
private bool bD;
private string query;
private Dictionary<string, Action> methods;
public string Name { get => name; set => name = value; }
public bool BD { get => bD; set => bD = value; }
public string Query { get => query; set => query = value; }
public Dictionary<string, Action> Methods { get => methods; set => methods = value; }
public Category(string name, bool bd, Dictionary<string,Action> methods, string query)
{
this.Name = name;
this.BD = bd;
this.Query = query;
this.Methods = methods;
}
}
Dictionary ссылочный контейнер, поэтому после очищения ссылки обновляются в обоих списках
Странное поведение Dictionary
Виртуальный выделенный сервер (VDS) становится отличным выбором
Рассматриваю пример изучения на практике алгоритмов сортировокНе могу разобраться с циклами
Я пытаюсь худо-бедно реализоввывать паттерн MVVMПри создании MenuItem возникли впросы по поводу привязки данных
есть график функции типа chartНеобходимо написать код, что бы по наведению мышки на точку графика, показывались координаты точки
Нужно чтобы программа брала из textbox текст и отправляла, по нажатию кнопки, в то место, где грубо говоря ее вставят, будь то строчка в браузере...