-3
Когда я создаю объект типа Deck
, исключение показано: «IndexOutOfRangeException был необработанным»Создание массива объекта в цикле в C#?
Может кто-нибудь объяснить, почему?
public class Deck {
Card[] card = new Card[52];
const int NumOfCards = 52;
public Deck()
{
string[] symbol = { "Diamonds", "Clubs", "Hearts", "Spades"};
string[] rank = { "Ace", "Two", "Three", "Four", "Five", "Six",
"Seven", "Eight", "Nine", "Jack", "Queen", "King"};
for (int i = 0; i < card.Length; ++i)
{
/// this is the line with problem shown in debug
card[i] = new Card(symbol[i/13], rank[i % 13]);
}
Console.WriteLine(card.Length);
}
public void PrintDeck() {
foreach (Card c in card)
Console.WriteLine(c);
}
}
Проверьте 'я% 13' значение, то подсчет элементов в' rank', а затем посмотреть на '«Ten»' – zerkms
Пфф Zerk, я чувствую себя плохо для размещения как ответьте сейчас :) – Rawling
@Rawling: поместите http://en.wikipedia.org/wiki/Off-by-one_error там, и все будет хорошо :-) – zerkms