我在我维护的一些代码中看到过这两种方法,但不知道有什么不同。有吗?
让我补充一下,myCustomer是Customer的一个实例
发布于 2008-09-26 13:50:36
在您的情况下,这两种方法的结果完全相同。它将是您从System.Type
派生的自定义类型。这里唯一真正的区别是,当您想要从类的实例中获取类型时,您可以使用GetType
。如果您没有实例,但知道类型名称(并且只需要实际的System.Type
来检查或比较),则可以使用typeof
。
重要区别
编辑:让我补充一下,对GetType
的调用是在运行时解析的,而typeof
是在编译时解析的。
发布于 2008-09-26 13:51:26
是的,如果你有一个从Customer继承的类型,这是有区别的。
class VipCustomer : Customer
{
.....
}
static void Main()
{
Customer c = new VipCustomer();
c.GetType(); // returns typeof(VipCustomer)
}
发布于 2008-09-26 13:51:11
对于第一个实例,您需要一个实际的实例(即myCustomer),对于第二个实例,您不需要
https://stackoverflow.com/questions/139607
复制相似问题