C# 转换符的重载 显示、隐式转换

 1     class Complex
 2     {
 3         //保存转换的值
 4         Int32 v;
 5 
 6         public Complex(Int32 x)
 7         {
 8             v = x;
 9         }
10 
11         public Int32 ToInt32()
12         {
13             return v;
14         }
15 
16         /// <summary>
17         /// 显示转换 重载
18         /// </summary>
19         /// <param name="c"></param>
20         /// <returns></returns>
21         public static explicit operator Int32(Complex c)
22         {
23             return c.ToInt32();
24         }
25 
26         /// <summary>
27         /// 隐式转换  重载
28         /// </summary>
29         /// <param name="x"></param>
30         /// <returns></returns>
31         public static implicit operator Complex(Int32 x)
32         {
33             return new Complex(x);
34         }
35     }
1         static void Main(string[] args)
2         {
3             Complex c = 10;//隐式转换  implicit
4             Int32 num = (Int32)c;//显示转换  explicit
5 
6             Console.WriteLine(num);
7 
8             Console.Read();
9         }