вытаскивая стек из стека / очереди - PullRequest
0 голосов
/ 02 ноября 2018

Мой вопрос о том, как вывести стек из очереди. Программа должна работать, генерируя стеки (показанные ниже), заполняя эти стеки данными (также показанные ниже), затем выгружая и отображая данные в них. Прямо сейчас это просто вызывает исключение CS1061. Например, есть 5, реальный код выбирает случайную строку из массива.

    public void newCustomers()
    {
        var customer = new Stack();
        store.Enqueue(customer);
    }
    public void Shop()
    {
        var customer = store.Dequeue();
        customer.Push(5);
        //^currently this doesn't work. I'm assuming the typing for customer is wrong.
        store.Enqueue(customer);
    }

CS1061

Код серьезности Описание Состояние подавления строки файла проекта Ошибка CS1061 «объект» не содержит определения для «Push», и невозможно найти доступный метод расширения «Push», принимающий первый аргумент типа «объект» (вы пропустили директиву using или ссылку на сборку?)

1 Ответ

0 голосов
/ 02 ноября 2018

Вы используете неуниверсальный класс Queue. Метод Dequeue() возвращает object, который вам нужно будет привести к Stack:

var customer = (Stack)store.Dequeue();
customer.Push(5);

Я бы предложил вместо этого использовать общий класс очереди Queue<T>.

...