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

  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013
  • fireflame65

    fireflame65

    27 Mart 2007
  • hotstrikegently

    hotstrikegen

    26 AĞUSTOS 2011