Я пытаюсь распечатать содержимое стека.
Класс стека
При попытке получить следующую ошибку.
Необработанное исключение. System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
Что происходит в строке foreach моего кода. Я не уверен, почему это происходит, так как я думал, что использовал пример, приведенный на странице, на которую я ссылался. Примером будет ...
foreach( string number in numbers )
{
Console.WriteLine(number);
}
Ниже приведен мой код. Все кажется работоспособным, кроме этой части, которая выдает ошибку.
foreach(var s in stack)
{
Console.WriteLine(s);
}
... и это мой код.
using System;
namespace Exercise
{
class Program
{
static void Main()
{
var stack = new Stack();
stack.Push(1);
stack.Push(2);
stack.Push(3);
foreach(var s in stack)
{
Console.WriteLine(s);
}
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Exercise
{
internal class Stack : IEnumerable
{
private object _object;
private List<object> list = new List<object>();
private IEnumerator Enumerator;
public IEnumerator GetEnumerator() => Enumerator;
internal object Pop()
{
if (list.Count == 0)
throw new InvalidOperationException("Cannot use .Pop() if list count equals 0.");
_object = list.FirstOrDefault();
list.RemoveAt(0);
return _object;
}
internal void Push(object obj)
{
_object = obj;
if (_object == null)
throw new InvalidOperationException("Cannot use .Push() if object is null.");
list.Insert(0, _object);
}
internal void Clear()
{
if (list.Count == 0)
throw new InvalidOperationException("Cannot use .Clear() if list is empty.");
list.Clear();
}
}
}
Что я делаю неправильно и как я могу исправить это, чтобы напечатать содержимое стека?