对操作符的重载和转换操作符--------------c#

这种写法能 自由自在的使用 加减乘除等操作符: 先定义一个类

  public sealed class chongzai
    {
        public Int32 canshu1;

         //重载操作符 + ,参数必须包含一个以上当前的类型chongzai.
        public static Int32 operator +(chongzai s, Int32 c)
        {
            return (s.canshu1 + c);
        }

        //转换操作符,,,可以用=号,将string转换成 chongzai类型,这个implicit是隐式的。
        public static implicit operator chongzai(string s)
        {
            return new chongzai() { canshu1 = Convert.ToInt32(s) };
        }

        //转换操作符,也可以将当前类型的一个参数,转换成string类型,这个explicit是显式的。
        public static explicit operator string(chongzai s)
        {
            return s.canshu1.ToString();
        }
    }

然后就可以用了

 chongzai c1 = new chongzai() { canshu1 = 34 };
            chongzai c2 = new chongzai() { canshu1 = 78 };

            Int32 klkkl = c1 + 3;//操作符重载

            string s1 = (string)c2;//转换操作符。。显式

            c2 = "1024";//转换操作符。。隐式

            Console.WriteLine("操作符重载结果:{0}"+klkkl);
            Console.WriteLine("显示转换操作符结果:{0}" + s1);
            Console.WriteLine("隐式转换操作符结果:{0}" + c2.canshu1);
            Console.ReadKey();

 

posted on 2016-02-16 10:53  你的乐哥哥  阅读(181)  评论(0编辑  收藏  举报