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

  • akalyne

    akalyne

    13 Mayıs 2009
  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • Trulia

    Trulia

    29 Kasım 2006