我正在努力完成我的第一个程序,即二十一点任务。我已经在我的BlackJackDeck类中构建了一堆方法,现在我想在我的程序类中开始实现它们,但是当我尝试添加卡时,我得到一个超出范围异常的参数。我试过做一个userHand.Add,我试过做一个userHand [0] =,但我只是没有实现这个。我猜测我的BlackJackDeck类中的addCard方法存在的大问题。我也尝试使用Cards [0]而不是.Count方法。卡片是此时的随机卡列表。
BlackJackDeck.cs
import java.util.Scanner;
import java.util.Random;
{public static void main(String [] args)
{
Scanner MyScan = new Scanner(System.in);
int Number;
System.out.println("How many integers do you want in your array?");
Number = MyScan.nextInt();
int[] MyArray = new int[Number];
}//end main
}//end class
计划CS
public Card addCard()
{
Card cardToAdd = Cards[Cards.Count-1];
Cards.RemoveAt(Cards.Count-1);
return cardToAdd;
}
答案 0 :(得分:2)
addCard()
中没有抛出异常。问题出在userHand
上。由于列表为空,因此索引0
上没有任何内容可以为其分配右侧值,因此它会抛出异常。 Range 这里指的是定义List的值的范围;对于空列表,范围也是空集,因此ArgumentOutOfRangeException
所讨论的参数是使用的索引(在这种情况下为0
)。要向List添加元素,请使用Add
方法:
userHand = new List<Card>();
userHand.Add(blackJackDeck.addCard());
userHand.Add(blackJackDeck.addCard());
在没有看到BlackJackDeck.Cards
如何初始化的情况下,我不能说addCard()
不会导致异常,但上述情况至少应该解决您{{1}的问题}。