我正在尝试将5张牌交易到可以包含6个卡片对象的Hand对象。 我写过手班,甲板班和卡类。
代码将卡交给可以包含Card对象的Hand对象,但我继续在Presentation.dll异常中获取System.Reflection.TargetInvocationException。
//function to deal specified player the topmost cards from deck
//recieves an array of hands or Hand object
public void dealPlayerCardsFromDeck(Hand players, int numberOfCards )
{
int j = 0;
//loop to go through deck elements and to ensure the end of the player's hand isnt reached
for (int i = 0; (i < deckLength) && (j <= numberOfCards); i++)
{
if (deck[i] != null)
{
players.hands[j].face = deck[i].face;
players.hands[j].value = deck[i].value;
deck[i] = null;
j++;
}
}
}//end function
以下是在Main()
中调用它的代码cardDeck.dealPlayerCardsFromDeck(players[0],5);
“cardDeck”是Class Deck的对象
Deck cardDeck = new Deck();
请注意我使用的是c#
答案 0 :(得分:0)
我认为最合乎逻辑的解释是在使用i或j索引数组时循环中的某种索引输出或范围问题。 我建议在调试器中执行以查看i或j是否增加超过数组的大小