复数(重载运算符、重写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开发 , 其他 ,