Я работаю в .net 3.5.
У меня есть класс «A», который имеет стек и свойство getter, которое при вызове удаляет первый элемент в стеке и получает следующий.
После инициализации класса я увидел, что геттер работает без вызова и удаляет верхний элемент в стеке, что дает мне плохие результаты. Точка останова в геттере не показала никого, проходящего через нее.
Когда я изменяю свойство на функцию, стек возвращается нормально.
Я был бы рад, если бы кто-то мог объяснить, почему это так.
Вот упрощенный класс:
public class A
{
private Stack<string> Urls;
public A(string title, string[] array)
{
Urls = new Stack<string>();
foreach (string s in array)
{
Urls.Push(s);
}
}
public string Url
{
get { return Urls.Peek(); }
}
public string NextUrl
{
get{
if (Urls.Count > 1)
{ Urls.Pop(); }
return Urls.Peek();
};
}
}