C #; список как один объект (контейнер) - PullRequest
1 голос
/ 30 апреля 2010

пользуюсь Visual studio 2008
У меня есть 5 списков в форме, я создал новый файл класса под названием «scaner.cs»

scaner.cs - он не видит "список".

Я создал экземпляр.
scaner Comp = new scaner(listBox2, listBox1, listBox3, listBox4, listBox5);

В файле scaner.cs я использую его следующим образом.

class scaner
    {
        public ListBox ls;
        public ListBox lsE;
        public ListBox lsIVars;
        public ListBox lsNumbers;
        public ListBox lsStrings;

public scaner(ListBox ls, ListBox lsE, ListBox lsIVars, ListBox lsNumbers, ListBox lsStrings)
        {
            this.ls = ls;
            this.lsE = lsE;
            this.lsIVars = lsIVars;
            this.lsNumbers = lsNumbers;
            this.lsStrings = lsStrings;
        }
}

Мой вопрос: как я могу заменить этот большой код на более «удобный» метод.

scaner Comp = new scaner(listBox2, listBox1, listBox3, listBox4, listBox5);

ЕСЛИ у меня было более 5 списков, это будет ужасно. Как я могу получить доступ к другому файлу класса "Listbox's" Спасибо за ответы.

Ответы [ 2 ]

6 голосов
/ 30 апреля 2010

Создайте поле для хранения всех ListBox экземпляров, а затем измените конструктор так, чтобы он принимал произвольное число из них:

class scaner
{
    readonly IEnumerable<ListBox> listBoxes;

    public IEnumerable<ListBox> ListBoxes
    {
        get { return this.listBoxes; }
    }

    public scaner(params ListBox[] listBoxes)
    {
        this.listBoxes = listBoxes;    
    }
}

Это позволит вам сделать это:

scaner Comp = new scaner(listBox1, listBox2);

или это:

// Here I am passing 4 ListBoxes - you can pass as many as you wish
// without modifying the source code of your scaner class
scaner Comp = new scaner(listBox1, listBox2, listBox3, listBox4);
1 голос
/ 30 апреля 2010

Использование List<ListBox>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...