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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对操作符的重载和转换操作符--------------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();

 

以上是关于对操作符的重载和转换操作符--------------c#的主要内容,如果未能解决你的问题,请参考以下文章

14:操作重载和类型转换

重载操作符与转换(下)

Linq标准查询操作符

操作重载与类型转换C++

操作重载与类型转换C++

操作重载与类型转换C++