读书人

请问一个关于类型转换有关问题

发布时间: 2012-04-20 15:27:03 作者: rapoo

请教一个关于类型转换问题
看如下的一段代码:
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方法来得到对象的准确类型。因为该方法是一个非虚方法,所以我们不可能利用它来修改一个类型的信息。

读书人网 >C#

热点推荐