这里是我的代码,这就是抛出一个错误说Cannot convert type "int" to Cards.Suits
和 Cannot convert type "int" to Cards.Rank
如何将int转换为枚举值?
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);
}
}
}
卡的构造是
public readonly Suits suit;
public readonly Rank rank;
public Card(Suits newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
现在西服枚举和排名枚举是作为卡定期甲板开始在ACE = 1等等,西装是DIAMONDS,CLUBS,HEARTS,SPADES。 谁能告诉我为什么即时通讯上面的错误。下面的代码是从一本书中读取的。 谢谢!
*编辑
public enum ranks
{
ACE = 1,
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
}
public enum Suit
{
DIAMOND,
CLUB,
HEART,
SPADE,
}
您可以显示'Suits'和'Rank'的定义是什么? –
与使用该方法不重复,仍然返回错误 – MikaAK
您正在使用'(适合)suitVal',但您发布的枚举实际上名为'Suit'。 –