这是我的代码抛出一个错误说Cannot convert type "int" to Cards.Suits和
Cannot convert type "int" to Cards.Rank
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
卡构造函数是
public readonly Suits suit;
public readonly Rank rank;
public Card(Suits newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
Run Code Online (Sandbox Code Playgroud)
现在,套装enum和Rank枚举是从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,
}
Run Code Online (Sandbox Code Playgroud)
像这样改变你的线路
cards[suitVal * 13 + rankVal] = new Card(((Suit)suitVal), ((ranks)rankVal));
Run Code Online (Sandbox Code Playgroud)
由于您的类在构造函数中采用枚举,因此请像这样更改它
public readonly Suit suit;
public readonly ranks rank;
public Card(Suit newSuit, ranks newRank)
{
suit = newSuit;
rank = newRank;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1358 次 |
| 最近记录: |