【发布时间】:2013-08-03 06:43:56
【问题描述】:
这是我的代码,它抛出了一个错误,说 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);
}
}
}
卡片构造函数是
public readonly Suits suit;
public readonly Rank rank;
public Card(Suits newSuit, Rank newRank)
{
suit = newSuit;
rank = newRank;
}
现在 Suits 枚举和 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,
}
【问题讨论】:
-
你能给出
Suits和Rank的定义吗? -
不是重复的,因为使用了该方法并且仍然返回错误
-
您使用的是
(Suits)suitVal,但您发布的枚举实际上名为Suit。 -
您的代码定义了枚举
ranks和Suit,但尝试转换为Rank和Suits类型。确保所有类型名称都匹配。 -
Nope that doesn't work Error 1 找不到类型或命名空间名称“Suit”(您是否缺少 using 指令或程序集引用?)