zoukankan      html  css  js  c++  java
  • 如何重载操作符和转换操作符

    using System;
     
    class Complex
    {
        public int i;
        public Complex(int i)
        {
            this.i = i;
        }
        //操作符重载,本质上是一个方法
        public static Complex operator +(Complex c1, Complex c2)
        {
            return new Complex(c1.i + c2.i);
        }
    }
    class TalentType
    {
        public int i;
        public double l;
        //针对不同的类型设计的构造器
        public TalentType(int i)
        {
            this.i = i;
        }
        public TalentType(double l)
        {
            this.l = l;
        }
        //自定义的转换函数
        public int ToInt32()
        {
            return this.i;
        }
        public double Todouble()
        {
            return this.l;
        }
     
        /*以下是操作符转换,本质上也是一个方法*/
     
        //隐式的类型操作符转换
        public static implicit operator TalentType(int i)
        {
            return new TalentType(i);
        }
        public static implicit operator TalentType(double l)
        {
            return new TalentType(l);
        }
        //显式的类型操作转换
        public static explicit operator Int32(TalentType t)
        {
            return t.i;
        }
        public static explicit operator double(TalentType t)
        {
            return t.l;
        }
     
    }
    class App
    {
        static void Main(string[] args)
        {
            //操作符重载
            Complex c1 = new Complex(3);
            Complex c2 = new Complex(4);
     
            Complex c3 = c1 + c2;
            Console.WriteLine("after c1 add c2,c3.i={0}", c3.i);
     
            //隐式操作符转换
            TalentType t1 = 10;
            TalentType t2 = 2.3;
     
            //显式操作符转换
            int i = (int)t1;
            double l = (double)t2;
     
            Console.Read();
        }
    }

  • 相关阅读:
    linux之SQL语句简明教程---CONCATENATE
    linux之SQL语句简明教程---UNION ALL
    linux之SQL语句简明教程---UNION
    linux之SQL语句简明教程---Subquery
    linux之SQL语句简明教程---外部连接
    Oracle11g温习-第五章:数据字典
    Oracle11g温习-第四章:手工建库
    Oracle11g温习-第三章:instance实例管理
    Oracle11g温习-第一章 3、ORACLE逻辑结构
    Oracle11g温习-第一章:Oracle 体系架构
  • 原文地址:https://www.cnblogs.com/OwenWu/p/1673544.html
Copyright © 2011-2022 走看看