我正在尝试将卡添加到列表中。卡片是结构。在我的结构中,我有一个带有值和套装的构造函数。当我尝试创建一张新卡时,我收到错误"' Blackjack.Program.Card'不包含带有2个参数的构造函数" 正如你所看到的,确实如此。这是我的代码。
public struct Card
{
int value;
string suit;
Card(int _value, string _suit)
{
value = _value;
suit = _suit;
}
};
public List<Card> deck = new List<Card>();
static void shuffleNewDeck(ref List<Card> newDeck)
{
newDeck.Clear();
for (int i = 0; i < 13; i++) // add spades
{
newDeck.Add(new Card(i, "Spade")); // error here
}
}
答案 0 :(得分:6)
将public
添加到Card
构造函数中。
答案 1 :(得分:4)
将构造函数访问者更改为public
类似
public struct Card
{
int value;
string suit;
public Card(int _value, string _suit)
{
value = _value;
suit = _suit;
}
}
来自Private Constructors (C# Programming Guide)
请注意,如果您不使用带有构造函数的访问修饰符 默认情况下仍然是私密的。
答案 2 :(得分:2)
c#中的结构和类默认是私有的。你必须修改你的代码,如:
public struct Card
{
int value;
string suit;
public Card(int _value, string _suit)
{
value = _value;
suit = _suit;
}
};
修改强>
我已参考此post
更改了我的回答答案 3 :(得分:0)
您的构造函数不公开。
public Card(int _value, string _suit)