当前位置:编程学习 > 网站相关 >>

复数(重载运算符、重写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
补充:Web开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,