Ich bin der Überzeugung gewesen, dass Casting unter bestimmten Umständen zu messbaren Leistungseinbußen führen kann. Dies kann auch der Fall sein, wenn wir anfangen, mit inkohärenten Netzen von unangenehmen Ausnahmen umzugehen.Interface Casting vs. Class Casting
Angesichts der Tatsache, dass ich mehr korrekte Heuristiken erstellen möchte, wenn es um die Programmierung geht, wurde ich aufgefordert, diese Frage den .NET-Gurus da draußen zu stellen: Ist Interface-Casting schneller als Classcasting?
Um einen Code Beispiel zu geben, sagen wir, das gibt es:
public interface IEntity { IParent DaddyMommy { get; } }
public interface IParent : IEntity { }
public class Parent : Entity, IParent { }
public class Entity : IEntity
{
public IParent DaddyMommy { get; protected set; }
public IParent AdamEve_Interfaces
{
get
{
IEntity e = this;
while (e.DaddyMommy != null)
e = e.DaddyMommy as IEntity;
return e as IParent;
}
}
public Parent AdamEve_Classes
{
get
{
Entity e = this;
while (e.DaddyMommy != null)
e = e.DaddyMommy as Entity;
return e as Parent;
}
}
}
So ist AdamEve_Interfaces schneller als AdamEve_Classes? Wenn ja, um wie viel? Und wenn Sie die Antwort wissen, warum?
In der Tat ist die moderne OOP Version von Spaghetti Code ** Lasagne Code **: viele Schichten ... :-) – rsenna
@rsenna ~ Hahaha! Weißt du, ich stehe korrigiert: P – Squirrelsama
@rsenna: Das ist genial. – NotMe