浅析“强制类型转换”带来的性能分析及其解决方法
一个“强制转换”的例子引发的思考: 1 using System; 2 class Fruit 3 { 4 // 省略 5 } 6 class Apple:Fruit 7 { 8 public int i = 1 ; 9 } 10 class Conversions 11 { 12 static void Main() 13 { 14 Fruit f = new Apple(); // CLR允许将一个对象实例强制转换为它的基类型,此转换是隐式转换。 15 // Apple a=new Fruit(); 16 // Type t=f.GetType(); 17 // Console.WriteLine(t.FullName); 查看所属那个class; 18 Console.WriteLine(f.i); // 调用出错 19 Apple a = (Apple)f; // 强制类型转换 20 Console.WriteLine(a.i); 21 // Console.WriteLine(((Apple)f).i); 22 } 23 } 24 在C Sharp语言中,进行强制类型转换的另外一种方式是is操作符。is操作符检测一个对象是否兼容于指定的类型,并返回一个Bool值。请注意:我在MSDN中查过资料,说明is操作符永远不会抛出异常,从而增加了代码执行的安全性。如下面例子: 1