码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-02-16 11:38:13      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

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

  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();

 

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

标签:

原文地址:http://www.cnblogs.com/xiaoleye/p/5192064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!