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

  • Fuse

    Fuse

    21 Kasım 2005
  • Liberator

    Liberator

    14 EYLÜL 2007
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006