这个c#程序中,if那行我画问好的,怎么括号后边就有一个对象,那是对象吗还是什么,放这干什么用,还

这个c#程序中,if那行我画问好的,怎么括号后边就有一个对象,那是对象吗还是什么,放这干什么用,还有,底下那几个if语句代表什么,为什么对了返回false,否则返回ture

第1个回答  推荐于2016-12-02
isAceHigh是一个bool类型的变量,if后面是一定要有括号的,语法就是这样的,括号里的表达式的值的类型必须是bool,所以放一个变量也是可以的。
这个方法是重载的>的操作符的方法,也就是判断card1是不是大于card2的,如果ACE是最大的,那么自然当Card2是ACE的时候,card1就不可能大于card2了,所以返回false。如果card2不是ACE,那么因为这里Card1已经是ACE了,那么Card1就大于Card2。
ACE就是扑克里的A。这个方法就是判断两个扑克谁大的。追问

那您像他前边说的是card1.suit==card2.suit这个不是判断他俩是否相等吗,不是判断谁大啊,还有,为什么底下又变成card1.rank了,这个suit,rank又是什么意思

追答

这里的suit是花色的意思,红桃,黑桃,方片,梅花这样的,首先要判断是不是同一个花色,在同一个花色的情况下两个都是A才一样大嘛,比如黑桃A大于红桃A之类的。rank就是1-10,JQK这些。

追问

谢谢您

那你看再往后,刚才说如果1<2是true,那您看再往后画星的几个else都是再说啥,好乱

追答

这一张都是if(isAceHigh)为True这个前提下的,花色已经一样了,这个在第一个问号前面那句话已经判断了。
然后是判断第一张扑克是不是A,如果是A,并且A是最大的,就是第一个星号前面的那部分。
接下来判断第二张扑克是不是A,如果是A,那么说明第一张扑克并不比第一张扑克大,就返回false,如果不是A,那么说明第一张扑克要大,返回true。
如果第一张扑克不是A,就是第三个星号到第一个星号之间的部分。
这个时候,判断第二张扑克是不是A,如果是A,那么第二张扑克大,就返回false。
如果两张扑克都不是A,那就判断card1的数字是不是大于card2的数字。
rank就是数字,1,2,3,4,5,6,7,8,9,10,J,Q,K这样的,分别是从小到大的。
最后一个星号之后的部分,就是当A不是最大的时候的判断方式。
其实这些具体的都不需要管,只要知道这个方法是判断扑克1是不是比扑克2大就行了。

追问

您再给我说下那个is acehigh放到if后边是如果什么,没太明白还

追答

isAceHigh,根据它的英文翻译,知道这个变量的意思应该是是否A是最大的,就是说,是不是A比K大的问题。就是2,3,4,5,6,7,8,9,10,JQKA还是A,2,3,4,5,6,7,8,9,10,JQK的分别。
如果isAceHigh为true,则是第一种方式,如果isAceHigh为false,则是第二种方式,应该是这样的。

追问

哦好的,太谢谢您了

我又刚问了个问题,您看看会吗

本回答被提问者和网友采纳
第2个回答  2015-01-16
那个是个 布尔类型的的对象。
相似回答