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

  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006

İLGİLİ SORU / CEVAPLAR