CLR最重要的特性之一就是类型安全的。在运行时,CLR总是知道对象的类型是什么。调用GetType()方法可以知道对象的确切类型,由于它是非虚方法,所以一个类型不可能伪装成另一种类型。每种编程语言都规定了开发人员具体如何进行这种转换操作。例如,C#不要求任何特殊语法即可将对象转换成他的基类型,因为向基类型转换是一种安全的类型转换。然而,将对象转换成他的某个派生类型时,C#要求开发人员只能进行显示转换,因为这种转换可能在运行时失败。一下代码演示了向基类型和派生类型的转换:
//该类型隐式派生字System.Object internal class Employee { ... } public sealed class Program { public static void Main() { //不需要转型,因为New返回了一个Employee对象, //而Object是Employee的基类 Object o = new Employee(); //需要转型,因为Employee派生字Object,需要进行强制类型转换 Employee e = (Employee)o; } }
时间: 2024-10-07 04:11:05