各位,在c#语言中,我画问号和横线的这几行都怎么解释,例如第一行是dbool判断,他判断的是什么,

各位,在c#语言中,我画问号和横线的这几行都怎么解释,例如第一行是dbool判断,他判断的是什么,怎么没看到写true和false啊,还有在下边那个this和13都哪来的... 各位,在c#语言中,我画问号和横线的这几行都怎么解释,例如第一行是dbool判断,他判断的是什么,怎么没看到写true和false啊,还有在下边那个this和13都哪来的,什么意思 展开
 我来答
醉酒银虫
2015-01-16 · TA获得超过339个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:257万
展开全部

第一个划线的这句话的意思是

class Class1
{
    public Class1(){}//这是默认构造函数
    public Class1(int num):this(){}//这是扩展的构造函数
}

这样,默认的初始化操作都放在默认构造函数里就行了,相当于先执行Class1(),再执行Class1(1)这样的。这样做可以减少代码冗余。

前两个问号是运算符重载的特殊语法,就是编辑自定义的运算符操作,第一个是==运算符的重载,在这里将写上判断两个Card是否相等的自定义逻辑。第二个是!=运算符的重载,在这里将协商判断两个Card是否不相等的自定义逻辑。你可以把 operator ==作为一个整体,当做方法名就可以了。

第三个问号是对Object中的Equals方法的重载,这个方法用于判断两个Card是否相同,this就是当前的对象,比如

Card card = new Card();
Card card2 = new Card();
card.Equals(card2);

在这里的Equals调用中,card就是this。

这里使用了运算符重载里面的方法。

而最后一个划线的,其实是因为重载了Equals之后,需要重载一下GetHashCode,这个方法是获取Card的一个标识的,就像Hash码一样,所以是这样的,这个13的意思,其实是因为扑克有4种花色,每种花色有13张,所以用花色代码*13再加上卡片类型就可以唯一标识一张扑克了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式