将牌从牌组发牌到名为Hands的一系列牌

时间:2013-07-15 02:25:38

标签: c# targetinvocationexception

我正在尝试将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#

1 个答案:

答案 0 :(得分:0)

我认为最合乎逻辑的解释是在使用i或j索引数组时循环中的某种索引输出或范围问题。 我建议在调试器中执行以查看i或j是否增加超过数组的大小