Dưới đây là thats mã của tôi ném một lỗi nói Cannot convert type "int" to Cards.Suits
và Cannot convert type "int" to Cards.Rank
Làm thế nào để chuyển đổi int thành giá trị enum?
private Card[] cards;
public Deck()
{
cards = new Card[52];
for (int suitVal = 0; suitVal < 4; suitVal++)
{
for (int rankVal = 0; rankVal < 14; rankVal++)
{
cards[suitVal * 13 + rankVal - 1] = new Card((Suits)suitVal, (Rank)rankVal);
}
}
}
các nhà xây dựng thẻ là
public readonly Suits suit;
public readonly Rank rank;
public Card(Suits newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
Bây giờ Suits enum và Xếp hạng enum như một cỗ thường xuyên của thẻ bắt đầu từ ACE = 1 như vậy và phù hợp với DIAMONDS, CLUBS, HEARTS, SPADES. Bất cứ ai có thể cho tôi biết tại sao im nhận được lỗi trên. Đoạn mã sau đã lấy từ một cuốn sách. Cảm ơn!
* EDIT
public enum ranks
{
ACE = 1,
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
}
public enum Suit
{
DIAMOND,
CLUB,
HEART,
SPADE,
}
Bạn có thể hiển thị các định nghĩa cho 'Suits' và 'Rank'? –
Không phải là một bản sao như phương pháp đó được sử dụng và vẫn trả về một lỗi – MikaAK
Bạn đang sử dụng '(Suits) suitVal' nhưng enum bạn đăng thực sự được đặt tên là' Suit'. –