c#的逻辑运算符重载

不光是C++,实际上C#中同样可以对操作符重载。如:
namespace Com.EVSoft.Math
{
  public class Vector3:BaseObject
  {
    ...
    ......
    ..
    public static Vector3 operator + (Vector3 lVector,double  rhs);
    public static Vector3 operator + (Vector3 lVector,Vector3 rVector);
    public static bool    operator ==(Vector3 lVector,Vector3 rVector);
    ...
    ......
  }
}

上面的代码是一个向量类,分别针对运算符和操作符进行了重载,重载操作符或运算符意味着改变了操作符原有的意思。例如,
...
......
..
Vector3 vec=null;//赋值运算符,是否是原有的意思需要开发者自己看它的定义
if(vec==null)    //逻辑运算符,按照Vector3的重载的定义,这里肯定要报错
{
  vec=new Vecotr3();
}

你可能感兴趣的:(c#的逻辑运算符重载)