运算符重载

  1. 运算符重载的关键实在对象上不能总是只调用方法或属性,有时还需要做一些其他工作。相加相乘等。

  2. 通过重载运算符,就可以告诉编译器,"+" 和"*"对对象进行什么操作,以编写上面的代码。

  3. 不支持运算符重载的语言编写代码,就必须定义一个方法,以执行这些操作。

  4. 不仅仅限于算术运算符。还需要考虑比较运算符==,<,>,!=,>=,<=。

  5. "+"运算符提供支持的运算符重载,public static Vector operator+(Vector lhs,Vector rhs)。

  6. 所有的的运算符重载都声明为public和static,类或结构相关联,而不是与某个实例相关联。

  7. 编译器不能交换参数的顺序,需要定义两个不同参数顺序的运算符重载。

  8. 成对重载比较运算符。如果重载了“==",也就必须重载"!="。==和!=,<和>,>=和<=。否则会产生编译错误。

  9. 在重载"=="和“!=”时,还必须重载从System.Object中继承的Equals()和GetHashCode()方法,Equals()方法应实现与"=="相同类型的相等运算。

  10. 浅度比较和深度比较,比较引用或对象的值。需要按照需求自定义。

你可能感兴趣的:(运算符,重载,运算符重载,operator)