请教一个关于类型转换问题
看如下的一段代码:
public class Program
{
public static void Main(string[] args)
{
ClassTest a = new ClassTest();
BaseClass b = a;
Console.WriteLine(b.GetType().ToString());
Console.ReadLine();
}
}
public class BaseClass{ }
public class ClassTest : BaseClass { }
如何使b.GetType()得到的类型是BaseClass而不是ClassTest
------解决方案--------------------public class ClassTest : BaseClass { } 由于他们好比父子关系,b变量会自动转换
------解决方案--------------------b 指向的是一个new ClassTest()啊,这个是不能更改的
CLR最重要的一个特性就是类型安全。CLR在运行时可以通过调用GetType方法来得到对象的准确类型。因为该方法是一个非虚方法,所以我们不可能利用它来修改一个类型的信息。