转换(重载转换运算符)
时间:2010-12-19 来源:hfliyi
例子如下:
代码1 class Aimplicit定义类型之间的隐式转换
2 {
3 public int intNumber;
4 public static implicit operator B(A a)
5 {
6 B b = new B();
7 b.doubleNumber = a.intNumber;
8 return b;
9 }
10 }
11 class B
12 {
13 public double doubleNumber;
14 public static explicit operator A(B b)
15 {
16 A a = new A();
17 checked { a.intNumber = (int)b.doubleNumber; }
18 return a;
19 }
20 }
21 class Program
22 {
23 static void Main(string[] args)
24 {
25 A a = new A();
26 a.intNumber = 4;
27 B b = a;
28 Console.WriteLine(b.doubleNumber.ToString());
29 }
30 }
explicit定义类型之间的显式转换
类A 与类B,类A包含一个int型的数据,而类B包含一个double型的数据,int与double在范围是不同的,int类型的数据可以隐式的转换成double类型数据,但是double类型的数据需要显式转换为int类型数据,有时候可能出现异常,是因为double类型数据超过了int所承担的范围。
相关阅读 更多 +