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

解决方案 »

  1.   

    class Fraction
        {
            int num;
            public override string ToString()
            {
                return num.ToString();            
            }………………
       }
    你输出的还是一个Fraction对象,Console.writeLine会调它的ToString()方法
      

  2.   

    你程序有问题,,在你的基础上修改了下,,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);       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() 方法后,才能用你那种写法