-2

嗨,伙计们,我正在尝试让我的第一个 GUI 游戏比较从机会卡中获得的两个数字。

public void button3_Click(object sender, EventArgs e)
{
mine = new ChanceCard();
MessageBox.Show("Chance Card:" + mine.ChanceCardNumber());
opponents = new ChanceCard();
MessageBox.Show("Opponents Chance Card:" + opponents.ChanceCardNumber());

if (mine > opponents)
{
MessageBox.Show("Highest number - you go first");
}
else
MessageBox.Show("Lowest number - computer goes first");

这一切都在我的 button3_Click 中,这是我的 ChanceCard 按钮。'mine' 和 'opponents' 在我的表格/主要表格的顶部,如下所示:

ChanceCard mine;
ChanceCard opponents;

现在在我的 ChanceCard 课程中,我尝试实现 get & set 但我认为我没有正确地做到这一点。

private int chanceNumber;
private int[] chanceCards = new int[16]{2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5};

public int mine
{
get {return setMine;}
set {setMine = value;}

我为 setOpponents 做了同样的事情,但我认为我做得不对。我今天有精神障碍,所以如果有人能用 5 岁的语言向我解释我做错了什么,将不胜感激,因为这个程序让我感到沮丧

4

3 回答 3

3

>除非重载运算符,否则无法比较引用类型。

public static bool operator >(ChanceCard card1, ChanceCard card2){
return card1.myValueTypeVar > card2.myValueTypeVar;
}
于 2013-04-30T18:09:44.170 回答
1

ChanceCard 类型不知道如何将自己与另一个 ChanceCard 进行比较。假设 ChanceCard 具有某种类型的值,例如:

if (mine.Value > opponents.Value)
{
   MessageBox.Show("....");
}

你可以那样做。或者,我相信您可以编写一个比较器,或者让 ChanceCard 实现 IComparable。

http://msdn.microsoft.com/en-us/library/system.icomparable.aspx

于 2013-04-30T18:13:25.260 回答
0

您必须比较属性,而不是类别。

if (mine.mine > opponents.mine)

会工作。

于 2013-04-30T18:10:00.237 回答