type remarks cref c# .net reflection

cref - remarks c#



¿Cuál es la diferencia entre RuntimeTypeHandle y Type? (2)

¿Y por qué usaría uno sobre el otro en mi código?


En .NET 4.0 Beta 1 RuntimeTypeHandle simplemente ajusta RuntimeType . Parece que han desaparecido todos los beneficios de usarlo como un proxy de Type barato.

Evidencia del reclamo anterior:


Precaución: esta respuesta parece estar desactualizada. Se publicó antes de que se lanzara .NET 4, que aparentemente introdujo algunas optimizaciones con respecto al Type y, por lo tanto, dejó obsoleta la información de esta respuesta. Vea esta respuesta más reciente para más detalles.

De acuerdo con esta publicación del blog (desde 2006) de Vance Morrison , RuntimeTypeHandle es un tipo de valor ( struct ) que envuelve un puntero no administrado, por lo que Type.GetTypeHandle(obj).Equals(anotherHandle) es más rápido de usar para "estricto" es exactamente el mismo escriba "comparaciones que obj.GetType().Equals(anotherType) - este último crea instancias de System.Type que son, aparentemente, más pesadas.

Sin embargo, también es menos obvio, y definitivamente cae dentro de la categoría de "micro-optimización", por lo que si se está preguntando cuándo necesita una sobre la otra, probablemente debería usar System.Type.