运算符重载(OperatorOverloads)C#语言

来源:互联网 发布:漫威电影宇宙知乎 编辑:程序博客网 时间:2024/05/16 11:10

既然学到这儿了,就把运算符重载(OperatorOverloads)学明白。

以楚老师讲的一个例子为例

写一个矢量类(Vector),在定义三个类对象vect1、vect2、vect3。通过数学可以了解到向量之间是可以进行加法操作的。而你要直接写vect1+vect2编译器是会报错的,因为目前的编译器还没有做到那么智能,所以就需要人工进行重载的操作了,操作的对象是“+”。

二元运算符,第一个参数是放在参数左边的值一般命名为lhs,第二个参数一般命名为rhs.

下面是重载运算符”+“的核心代码

 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 vect1, vect2, vect3;            vect1 = new Vector(1.0, 4.0, 3.0);            vect2 = new Vector(vect1);            vect3 = vect1 + vect2;

最后这个加号就可以执行两个向量之间的加法操作了。其实运算符重载(OperatorOverloads)就这么点事儿,理解理解,在看一些运算符重载(OperatorOveraloads)的规则,比如像重载比较运算符的时候(大于、小于)必须成对重载。然后就可以了。

0 0
原创粉丝点击