18

为什么我会在我的代码中使用一个而不是另一个?

4

2 回答 2

11

警告:此答案似乎已过时。它是在 .NET 4 可用之前发布的,这显然引入了一些优化Type,因此使这个答案中的信息过时了。有关详细信息,请参阅此更新的答案

根据Vance Morrison的这篇博文(自 2006 年起),它RuntimeTypeHandle是一个值类型 ( ,较重。structType.GetTypeHandle(obj).Equals(anotherHandle)obj.GetType().Equals(anotherType)System.Type

但是,它也不太明显,并且肯定属于“微优化”类别,因此如果您想知道何时需要其中一个,您可能应该只使用 System.Type。

于 2008-09-02T19:28:14.047 回答
7

在 .NET 4.0 Beta 1中RuntimeTypeHandle,仅包含RuntimeType. 使用它作为廉价Type代理的所有好处似乎都消失了。

上述主张的证据:

于 2009-09-17T12:06:23.080 回答