7.5运算符重载

关于“==痹怂惴?/p>

对于引用类型,默认为比较引用的地址,即是否指向同一个对象。

对于结构类型,默认情况下是不能使用“==痹怂惴?会产生一个编译错误,必须重载该运算符。

,

c#规定,所有运算符重载都必须是公共静态的。

c#不允许重载赋值运算符。

如果重载了运算符+,编译器会自动重载“+=痹怂惴F渌怖嗨啤?/p>


对于比较运算符,c#要求成对重载,即:“==焙汀?=?“在”和“& lt;”;“祝辞="和" & lt;=",另外,比较运算符必须返回bool类型。

重载“==焙汀?=痹怂惴?还必须重写对象类的Equals()方法和GetHashCode方法()方法,其中,=()方法应实现与“==痹怂惴嗤穆呒δ堋?/p>


注意:中文版图书中在此处有翻译错误,在180页倒数第三行,译文为:“还必须重载从System.Object中继承的Equals()和GetHashCode方法()方法”。此处应该是重写,即:覆盖。


7.5运算符重载