各位,在c#语言中,我画问号和横线的这几行都怎么解释,例如第一行是dbool判断,他判断的是什么,
各位,在c#语言中,我画问号和横线的这几行都怎么解释,例如第一行是dbool判断,他判断的是什么,怎么没看到写true和false啊,还有在下边那个this和13都哪来的...
各位,在c#语言中,我画问号和横线的这几行都怎么解释,例如第一行是dbool判断,他判断的是什么,怎么没看到写true和false啊,还有在下边那个this和13都哪来的,什么意思
展开
1个回答
展开全部
第一个划线的这句话的意思是
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再加上卡片类型就可以唯一标识一张扑克了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询