> ich stehe grad vor einer neuen Architekturentscheidung, für die
> Performance sehr wichtig ist, daher die Frage:
> 
> Wieviel kostet ein Typvergleich, etwa
> dings.GetType==typeof(DingsKlasse)? Ist so ein Vergleich egal für die
> Performance oder eher langsam?

Hab es auch noch nicht getestet, aber auf jeden Fall muss dafür ein bzw.
zwei Typ-Objekt(e) instantiiert werden... Ode werden die vielleicht eh
instantiiert beim laden der Klassen?!?

Ich könnte mir jedenfalls vorstellen, dass das schneller ist:
(dings as DingsKlasse) != null

Allerdings ist die Funktionalität leicht anders, da auch Objekte aus
abgeleiteten Klassen erkannt werden...

Wenn Dir das egal ist, mach mal time das doch mal... (ungetestet)

object[] dinge = new object[]{new object(), new DingsKlasse(), new
AnotherKlasse(), ...}

Object o = new object();
int c;
DateTime start = DateTime.Now; 
for(int it=0; it<1000000; i++)
{
        for(int i = 0; i++ i<dinge.Count)
        {
                if dinge[i].GetType==typOf(DingsKlasse) c++;
                //if (dings as DingsKlasse) != null c++;
        }
}
DateTime end = DateTime.Now;
TimeSpan zeit = end-start;
// Dann c und zeit ausgeben


Ich inkrementiere c, damit der Vergleich nicht vom Compiler
wegrationalisiert wird...


Claudius

_______________________________________________
CSharp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net

Antwort per Email an