SORU
4 EKİM 2008, CUMARTESİ


Olay bildirimi anonim boş bir temsilci eklemek için bir dezavantajı var mı?

Bu deyim (on SO da dahil olmak üzere) bir kaç söz gördüm:

// Deliberately empty subscriber
public event EventHandler AskQuestion = delegate {};

Baş açık - olay artırmadan önce boş kontrol etmek için ihtiyaç önler.

Ancak, eğer herhangi bir dezavantajı olup olmadığını anlamak için istekli değilim.Örneğin, yaygın kullanım ve bakım baş ağrısına neden olmaz yeterince şeffaf bir şey mi? Boş bir olay abone çağrı herhangi bir kayda değer performans isabet var mı?

CEVAP
19 Kasım 2008, ÇARŞAMBA


Performans artırıcı, yerine Tepegöz, neden 7 ** hem sorunları hafifletmek için:

public static void Raise(this EventHandler handler, object sender, EventArgs e)
{
    if(handler != null)
    {
        handler(sender, e);
    }
}

Tanımlanmış bir zamanlar, hiç boş olay başka bir kontrol daha yapmak zorunda:

// Works, even for null events.
MyButtonClick.Raise(this, EventArgs.Empty);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007
  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011