C# 操作员'&燃气轮机';无法应用于类型为';TopTrumpGame.ChanceCard';和';TopTrumpGame.ChanceCard';

C# 操作员'&燃气轮机';无法应用于类型为';TopTrumpGame.ChanceCard';和';TopTrumpGame.ChanceCard';,c#,numbers,compare,C#,Numbers,Compare,嗨,伙计们,我正试图让我的第一个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:" + op

嗨,伙计们,我正试图让我的第一个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");
这都是我的按钮3_单击这是我的ChanceCard按钮。 “我的”和“对手”处于我的状态/主要状态的顶部,如:

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;}

我也为对手做了同样的事情,但我认为我做得不对。我今天有一个心理障碍,所以如果有人能用5年前的语言向我解释我做错了什么,我会非常感激,因为这个程序让我很沮丧

除非你是操作员,否则你不能使用
比较引用类型

public static bool operator >(ChanceCard card1, ChanceCard card2){
return card1.myValueTypeVar > card2.myValueTypeVar;
}

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

if (mine.mine > opponents.mine)

会有用。

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

if (mine.Value > opponents.Value)
{
   MessageBox.Show("....");
}
你可以那样做。或者,我相信您可以编写一个比较器,或者让ChanceCard实现IComparable


有人建议我这样做,直到出现错误,这才有意义。我不知道如何纠正。我想你忽略了你上一个问题中发布的所有内容:/不,伙计,我只是不太明白:/我真的需要向我解释一下哈哈,如果我刚刚测试了这个,它只写下即使我得到了一个更高的数字,我也会输:我尝试过这个,但是它似乎只发现计算机卡总是更高,即使它不是