Как я могу удалить старые значения из статического класса C#?
Всем привет,
Я хочу передать элементы списка из одного класса в другой. Я использовал статическое ключевое слово. Но теперь, когда приложение работает, все еще есть старая переменная.
На самом деле у меня есть listview с флажками. После того, как установлены флажки, нажмите кнопку. Затем всплывающее другую страницу окно, которое содержит элемент управления ListView в отношении каждого Parent_File_Name и userId . Я столкнулся с проблемой, после запуска этого приложения windows, то много раз нажмите на кнопку снова обе статические переменные содержат целые элементы списка. Как это можно сделать? Ты можешь меня достать?
Пожалуйста, помогите мне...
Что я уже пробовал:
В 1-м классе,
foreach (DocumentsUser item in listView1.SelectedItems) { ImgName.Add(item.Parent_File_Name); UserId.Add((int)item.UserId); }
private static List imgName = new List(); public static List ImgName { get { return imgName; } } private static List userId = new List(); public static List UserId { get { return userId; } }
2-й класс, принимающий эти статические переменные,
foreach (var userId in Qscan.UC_FileMgmt.UserId) { foreach (var imgName in Qscan.UC_FileMgmt.ImgName) {
Kornfeld Eliyahu Peter
Вы когда-нибудь очищаете список?
Abhilash.J.A
Нет, как я могу очистить список перед вызовом снова и снова в C#?
Tomas Takac
Не используйте статические переменные, статика-это зло! Вам нужно понять, каков жизненный цикл ваших объектов. Когда вы создаете новое окно, передайте новую модель представления и заполните ее своим списком. Кроме того, использование двух отдельных списков для чего-то, что явно является одной сущностью, - это плохо. Создайте другой класс для инкапсуляции userid и imgname. В целом я чувствую, что вы пытаетесь решить проблему, которая слишком велика для вас. На самом деле ничего плохого в этом нет, но чтобы научиться, вам нужно разбить его на более мелкие кусочки.