C# 堆栈<&燃气轮机;弹出错误

C# 堆栈<&燃气轮机;弹出错误,c#,xna,C#,Xna,我很难在游戏中纠正这个错误 if (type.BoundingCircle.Intersects(Dragon.BoundingRectangle)) { rubys.Pop(i--); OnTypeCollected(type.Dragon); } 方法“Pop”的无重载接受1个参数错误告诉您不需要向Pop提供任何参数,事实上,该方法不

我很难在游戏中纠正这个错误

  if (type.BoundingCircle.Intersects(Dragon.BoundingRectangle))       
            {  
                rubys.Pop(i--);        
                OnTypeCollected(type.Dragon);  
            }  

方法“Pop”的无重载接受1个参数

错误告诉您不需要向
Pop
提供任何参数,事实上,该方法不接受任何参数

试试这个:

if (type.BoundingCircle.Intersects(Dragon.BoundingRectangle))       
{  
    rubys.Pop();        
    OnTypeCollected(type.Dragon);  
}  
正确的语法是:

 rubys.Pop(); 

要从堆栈中删除ruby,并查看它是什么ruby

var rubyOnTopOfStack = rubys.Pop();
尽管您可能想:-

if(stack.Count > 0) rubys.Pop();

如果rubys有可能是空的,否则它将抛出异常

这意味着什么
rubys.Pop(i--)?@I4V:这意味着ruby从堆栈中移除了!你希望我在流行音乐中会做什么?我会减少rubys的数量,例如,如果ruby=8,我会减少龙与ruby相交时的值我试过了,但是当龙与ruby相交时,几个ruby消失了,而不是一个。@Peanues\u美味,你真正的问题是什么?因为这个答案对于问题
是正确的,所以方法“Pop”没有重载,只接受1个参数。使用无参数的
Pop
:)@Peanues\u是美味的听起来你可能根本误解了
Pop
的功能
Stack
是一种数据结构,它可以帮助您在游戏中组织代码对象,但它不涉及屏幕上的宝石“堆栈”。在这个过程中,当一个宝石与龙相交时,它会移除几个宝石。我一次只想让一颗红宝石消失。有没有办法解决这个问题?@Peanues\u are\u delicous听起来可能你的弹出框放错地方了,如果你有多个删除红宝石的条件,你可能想先评估所有条件,然后设置一个标志,说删除红宝石,然后最后弹出红宝石