using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace _123
{
class Program
{
static void Main(string[] args)
{
//int result;
Fraction fr1 = new Fraction(4);
Fraction fr2 = new Fraction(2);
Console.WriteLine("{0}+{1}={2}",fr1,fr2,fr1+fr2);
Console.ReadKey();
}
}
}Fraction类using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace _123
{
class Fraction
{
int num;
public Fraction(int Num)
{
num = Num;
}
public static Fraction operator +(Fraction a,Fraction b)
{
return new Fraction(a.num + b.num );
}
}
}
输出结果 是: _123.Fraction+_123.Fraction=_123.Fraction
为什么不是 6
{
int num;
public override string ToString()
{
return num.ToString();
}………………
}
你输出的还是一个Fraction对象,Console.writeLine会调它的ToString()方法
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace _123
{
class Program
{
static void Main(string[] args)
{
//int result;
Fraction fr1 = new Fraction(4);
Fraction fr2 = new Fraction(2); Fraction fr3 = fr1 + fr2;
Console.WriteLine("{0}+{1}={2}",fr1.Num,fr2.Num,fr3.Num);
Console.WriteLine("{0}+{1}={2}", fr1, fr2, fr1 + fr2); // 必须重载ToString()
Console.ReadKey();
}
}
}class Fraction
{
private int num;
public int Num{ get{ return num; } }
public Fraction(int num)
{
this.num = num;
}
public static Fraction operator +(Fraction a,Fraction b)
{
return new Fraction(a.num + b.num );
}
public override string ToString()
{
return num.toString();
}
}你重载运算符后,返回的是类对象,只有重载了ToString() 方法后,才能用你那种写法