Hallo beisammen,
bin gerade auf einen interessanten Artikel bei devlicio.us gestossen.
Dort wird über die Implemetierung von Events gesprochen, im konkreten Fall wie man sich die Abfrage auf null sparen kann und ohne diese sogar performanter sein soll.
Hier noch ein weiterer Link zum Thema, mit weiterführenden Links, auf www.dev102.com.
Was denkt ihr darüber?
Lg Oli
EDIT: Uiui, wer lesen kann. 😉 Die pruefung auf null ist schneller als das initialisieren.
ich finde diese Syntax cool
public event EventHandler Updated = delegate { };
protected void UpdatePrice(string tickerSymbol, decimal newPrice, long newVolume)
{
_priceList[tickerSymbol] = newPrice;
_volumeList[tickerSymbol] = newVolume;
Updated(this, new MarketFeedEventArgs(tickerSymbol, newPrice, newVolume));
}
Hat aber den Nachteil aus meiner Sicht das man das OnUpdated nicht hat und damit auch nicht überladen kann.
Sry, haette ich dazu schreiben sollen.
Die Methode OnUpdated kann trotzdem implementiert werden.
protected void OnUpdated (object sender, EventArgs e)
{
//if (OnOnUpdatedEvent != null) //das kann man sich dann sparen
OnOnUpdatedEvent(this, e);
}
Im Artikel auf die Kommentare achten!!
Der “Ghost” delegate macht das ganze langsamer und jedes neue “Ghost” delegate das man erzeugt braucht speicher!
Wem die Geschwindigkeit egal ist sollte wenigstens am einen
Delegate ghostDelegate = delegate {};
event bla1 = ghostDelegate;
event bla2 = ghostDelegate;
machen um wenigsten speicher zu sparen.