Frage

Und warum sollte ich in meinem Code eines über dem anderen verwenden?

War es hilfreich?

Lösung

Vorsicht:Diese Antwort scheint veraltet zu sein. Es wurde veröffentlicht, bevor .NET 4 verfügbar wurde, was offenbar einige Optimierungen in Bezug auf Folgendes mit sich brachte Type und machte damit die Informationen in dieser Antwort obsolet.Sehen diese neuere Antwort für Details.

Entsprechend dieser Blogbeitrag (aus dem Jahr 2006) von Vance Morrison, RuntimeTypeHandle ist ein Werttyp (struct), das einen nicht verwalteten Zeiger umschließt, also Type.GetTypeHandle(obj).Equals(anotherHandle) lässt sich für strikte „Ist genau derselbe Typ“-Vergleiche schneller verwenden als obj.GetType().Equals(anotherType) – Letzteres schafft System.Type Exemplare, die offenbar schwerer sind.

Allerdings ist es auch weniger offensichtlich und fällt definitiv in die Kategorie „Mikrooptimierung“. Wenn Sie sich also fragen, wann Sie eines über dem anderen benötigen, sollten Sie wahrscheinlich einfach System.Type verwenden.

Andere Tipps

In .NET 4.0 Beta 1 RuntimeTypeHandle einfach umwickelt RuntimeType.Es scheint, dass es alle Vorteile bietet, es als günstiges Produkt zu verwenden Type Proxy sind weg.

Beweis für die obige Behauptung:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top