[英]Why am I getting an InvalidOperationException?
所以我有一個構造函數和一個返回卡的方法。 由於某種原因,我收到了InvalidOperationException。 有人能想到什么嗎?
卡列表不為空,我只是從此處的構造函數中刪除了卡生成算法,以使其更易於閱讀。
這是代碼:
public Deck()
{
cards = new List<Card>();
cardStack = new Stack<Card>();
// cards list gets populated here
foreach (Card card in cards)
{
cardStack.Push(card);
}
}
public Card drawCard()
{
return cardStack.Pop(); // This line is giving me an InvalidOperationException
}
謝謝!
當您調用Pop()
時, cardStack
為空。 我建議您在彈出紙疊之前先檢查紙疊中的紙牌數量,如果紙盤為空,請做一些合理的事情。
也許這是一個愚蠢的問題……但是您在彈出堆棧之前是否檢查堆棧是否為空? 根據MS文檔 ,這是引發此異常的唯一原因...
查看該代碼,實際上沒有卡被推入cardStack
(卡最初是空的)。 因為C#告訴您沒有可彈出的內容,所以您得到了例外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.