本章有以下主要概念:
一:类型的安全性;
二:对象的相等比较;
三:运算符重载;
四:用户定义的数据类型转换
C#运算符和C语言有些差不多,对运算符的学习主要在运算符重载
运算符重载也许有些奇怪,为什么要重载运算符呢?^_^在有些时候尤其是数学上的运算需要,比如量子力学中矩阵运算比较多,那么*运算符在这里就不是简单的数字相乘的意思,我们需要重新定义*的意思,即所谓的运算符重载,下面举个简单的例子看运算符是怎么重载的
public static Vector operator +(Vector lhs, Vector rhs) //运算符+重载
{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
这个例子我们首先定义了一个结构Vector,运算符重载的格式是:返回类型 operator 运算符(参数列表) 这里我们重载+运算符,传入参数是一个结构Vector,返回类型也是Vector,这样当我们在使用+运算符时,如果+两边的参数是Vector类型的结构对象,则就会调用重载的方法,而不是普通的数字相加,这就可以解决许多科学计算问题,数学计算中运算符有许多不同的含义,这样我们就可以通过运算符重载来解决这个问题 ^_^