运算符的重载,用的地方不算是很多,但是作为语言基础,还是了解的好。

其中用到了关键字operator,在这里既然是运算符的重载,就要在了解重载的基础上去了解运算符的重载。其实是一样,C#语言已经帮助我们重载了一些运算符,像 + -等等。 下面是实例代码

 

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Vector vector = new Vector(1,2,3);
            Vector firstVec = new Vector(vector);
            Vector resultVec = vector + firstVec;
            Console.Write(resultVec);
        }
    }

    class Vector
    {
        private double x, y, z;

        public double Z
        {
            get { return z; }
            set { z = value; }
        }

        public double Y
        {
            get { return y; }
            set { y = value; }
        }

        public double X
        {
            get { return x; }
            set { x = value; }
        }
        /// <summary>
        /// 以下是构造方法的重载
        /// </summary>
        public Vector()
        {
            X = 0;
            Y = 0;
            Z = 0;
        }

        public Vector(double x, double y, double z)
        {
            this.X = x;
            this.Y = y;
            this.Z = z;
        }

        public Vector(Vector objVector)
        {
            this.X = objVector.X;
            this.Y = objVector.Y;
            this.Z = objVector.Z;
        }
        /// <summary>
        /// 重写超类object的toString()方法
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return "x的值:" + X + "y的值:" + Y + "z的值:" + Z;
        }
        /// <summary>
        /// 赋值运算符的重载,关键字operator
        /// </summary>
        /// <param name="firstVec"></param>
        /// <param name="secondVec"></param>
        /// <returns></returns>
        public static Vector operator +(Vector firstVec, Vector secondVec)
        {
            Vector obj = new Vector(firstVec);
            obj.X += secondVec.X;
            obj.y += secondVec.Y;
            obj.Z += secondVec.Z;
            return obj;
        }
    }
}

 

输出结果为  x的值为:2 y的值为: 4 z的值为6,结果计算正确。


posted on 2009-02-18 16:43  hao a  阅读(241)  评论(0编辑  收藏  举报