我的结构不包含有两个参数的构造函数... 但确实如此
本文关键字:构造函数 参数 两个 包含 结构 我的 | 更新日期: 2023-09-27 18:02:24
我试图将卡片添加到列表中。卡片是结构体。在我的结构中,我有一个构造函数,它接受一个值和一个suit。当我尝试创建一个新的卡,我得到错误"'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
}
}
将public
添加到Card
构造器中
将构造函数访问器更改为public
之类的public struct Card
{
int value;
string suit;
public Card(int _value, string _suit)
{
value = _value;
suit = _suit;
}
}
来自私有构造函数(c#编程指南)
请注意,如果不对构造函数使用访问修饰符默认情况下仍然是私有的。
c#中的结构和类在默认情况下是私有的。你必须修改你的代码,像:
public struct Card
{
int value;
string suit;
public Card(int _value, string _suit)
{
value = _value;
suit = _suit;
}
};
编辑
我已经根据这篇文章改变了我的答案
构造函数不是公共的
public Card(int _value, string _suit)