2013-04-30 31 views
-2

嗨,大家好我试图让我的第一个GUI的游戏比较来自机会获得卡的两个数字。操作“>”不能应用于类型的操作数“TopTrumpGame.ChanceCard”和“TopTrumpGame.ChanceCard”

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; 
ChanceCard opponents; 
现在

在我ChanceCard类,我试图实现得到&集,但我不认为我已经做到了正确。

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岁的语言给我解释一下,这将非常赞赏,因为这个程序是令人沮丧的我

+0

我想你忽略了被张贴在你前面的问题的一切:/ – FlyingStreudel 2013-04-30 18:17:46

+0

没有队友,我就是无法真正理解它:/我真的需要这个拼出来给我,哈哈,我不能对于我的生活弄清楚如何做到这一点,如果陈述 – user2326995 2013-04-30 18:34:25

回答

3

你不能比较使用>除非引用类型你的运营商是overload

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

有人建议我这样做,它有道理,直到该错误弹出。我不知道如何纠正它。 – user2326995 2013-04-30 18:10:15

+0

我更新了answuer添加参考MSDN文档 – pollirrata 2013-04-30 18:12:03

0

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

if (mine.mine > opponents.mine) 

会工作。

+0

传奇三江源这么多! – user2326995 2013-04-30 18:14:10

+0

我刚刚测试了这一点,它只是写下我失去即使我得到一个较大的数字: – user2326995 2013-04-30 18:19:48

1

的ChanceCard类型不知道如何比较自己到另一个ChanceCard。假设机会卡有一些类型的价值,例如:

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

你可以这样做。或者,我相信你可以写一个比较器,或者让你的IC卡实现IComparable。

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

+0

我曾经尝试这样做,但它似乎只发现计算机卡始终较高,即使其不 – user2326995 2013-04-30 18:22:17

相关问题