Вопрос

И почему я должен использовать одно поверх другого в своем коде?

Это было полезно?

Решение

  

Внимание. Этот ответ устарел. Он был опубликован до того, как стал доступен .NET 4, что, по-видимому, привело к некоторой оптимизации в отношении Type и, таким образом, предоставило информацию. в этом ответ устарел. Подробнее см. этот более свежий ответ .

Согласно этой записи в блоге (с 2006 года) Vance Моррисон , RuntimeTypeHandle - это тип значения ( struct ), который переносит неуправляемый указатель, поэтому Type.GetTypeHandle (obj) .Equals (anotherHandle) быстрее использовать для строгого " точно такого же типа " сравнения чем obj.GetType (). Equals (anotherType) & # 8212; последний создает экземпляры System.Type , которые, по-видимому, тяжелее.

Однако это также менее очевидно и определенно подпадает под категорию «микрооптимизация». поэтому, если вам интересно, когда вам нужно одно поверх другого, вам, вероятно, следует просто использовать System.Type.

Другие советы

В .NET 4.0 Бета-версия 1 RuntimeTypeHandle просто обертывает RuntimeType.Кажется, все преимущества использования его в качестве дешевого Type прокси-серверы исчезли.

Доказательства в пользу вышеуказанного утверждения:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top