我想知道以下代码
public static implicit operator ConvClass2(ConvClass1 op1)
中的关键字implicit在C#中的释意是什么?

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/library/z5z9kes2(VS.80).aspx
      

  2.   

    隐式转换的意思, 
    ConvClass2 n;
    ConvClass1 m;
    n = m;
    这里就用到了你的重载方法了还有一个explilcit与之相对,是显式转换的意思。
    如果是explilcit,那么就要n = (ConvClass2)m;
      

  3.   

    implicit 关键字用于声明隐式的用户定义类型转换运算符。如果转换过程可以确保不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换。class Digit
        {
            public Digit(double d) { val = d; }
            public double val;
            // ...other members        // User-defined conversion from Digit to double
            public static implicit operator double(Digit d)
            {
                return d.val;
            }
            //  User-defined conversion from double to Digit
            public static implicit operator Digit(double d)
            {
                return new Digit(d);
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Digit dig = new Digit(7);
                //This call invokes the implicit "double" operator
                double num = dig;
                //This call invokes the implicit "Digit" operator
                Digit dig2 = 12;
                Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
                Console.ReadLine();
            }
        }