复数(重载运算符、重写ToString)

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

namespace ConsoleApplication9
{
    //定义一个复数结构
    public struct Complex
    {
        public string complexstr;
        private int real;
        private int imaginary;
        //结构中只可以定义带参数的构造函数,且若有此构造函数又有字段,并须在结构中赋值
        public Complex(int r, int i)
        {
            this.real = r;
            this.imaginary = i;
            this.complexstr = "complex";            
        }

       //重载加号运算符
        public static Complex operator +(Complex c1,Complex c2)
        {                        
            return new Complex(c1.real + c2.real,c1.imaginary + c2.imaginary);
        }

        //重写结构Complex的ToString()方法
        public override string ToString()
        {
            return (System.String.Format("{0} + {1}i", real, imaginary));
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            Complex c1 = new Complex(1, 2);
            Complex c2 = new Complex(3, 4);
            //自动判断操作数类型,选择相应的重载函数
            Complex sum = c1 + c2;
            int intsum = 2 + 2;

            Console.WriteLine("c1:{0}", c1);
            Console.WriteLine("c2:{0}", c2);
            //结构Complex重写了ToString()方法
            Console.WriteLine("Complex-sum:{0}", sum);
            //类Program没有重写ToString()方法,所以以字符串形式输出
            Console.WriteLine("ProgramToString:{0}", p);
            Console.WriteLine("Complex.complexstr:{0}",sum.complexstr);
            Console.WriteLine(intsum);

            Console.ReadLine();
        }
    }
}

结果:

c1:1 + 2i
c2:3 + 4i
Complex-sum:4 + 6i
ProgramToString:ConsoleApplication9.Program
Complex.complexstr:complex
4


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值