public static implicit operator double(Fraction f)
        {
            return (double)f.num/f.den;
        }这个重载方法中implicit 关键字是什么意思?
static void Main(string[] args)
        {
            Console.WriteLine("a+b=" + Convert.ToString(Add(2, 3)));
            Console.WriteLine("a+b=" + Add(2.6, 3));
            Console.WriteLine("a+b=" + Add(2, 3, 5.3).ToString());
                        Console.WriteLine("a+b+c+d=" + Add(2, 3,6,7).ToString());        }
        public static double Add(double a, double b)
        {
            return a + b;
        }
        public static double Add(double a)
        {
            return a;
        }
        public static double Add(double a, double b, double c)
        {
            return a + b + c;
        }
        public static int Add(int a, int b)
        {
            return a + b;
        }        public static int Add(int a, int b,int c,int d)
        {
            return a + b + c + d;
        }为什么在VS2005上面带有两个参数的方法中找不到ToString方法,1个3个的都可以?
但是在2010中带两个参数的可以找到ToString方法。

解决方案 »

  1.   

    没用过2010应该是对ToString又重载了吗
      

  2.   

    implicit 关键字用于声明隐式的用户定义类型转换运算符。如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。第二个问题不知道你问的是啥意思
      

  3.   

    implicit关键字用于声明隐式的用户定义类型转换运算符。
    static implicit operator target_type { source_type identifier }隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。但是,因为可以在未指定的情况下发生隐式转换,因此必须注意防止令人不愉快的后果。一般情况下,隐式转换运算符应当从不引发异常并且从不丢失信息,以便可以在不知晓的情况下安全使用它们。如果转换运算符不能满足那些条件,则应将其标记为 explicit。 
    Convert.ToString()
    void Add<T>(T a, T b)
    {}
      

  4.   

    implicit 用于自定义隐式数据类型转化