SORU
30 Aralık 2008, Salı


Önleme aynı Olay işleyicisi atama birden çok kez

Bir olay işleyicisi zamanında atıyorum ve birden çok kez çağrılabilir bir noktada olduğunu, aynı olay için aynı işleyici birden fazla atamaları önlemek için önerilen bir uygulamadır.

object.Event  = MyFunction

Bir kez daha çağrılacak bir yerde bu ekleme yürütecek işleyicisi 'n' kere (tabii ki).

Üzerinden eklemek için denemeden önce herhangi bir önceki işleyicisi kaldırılması için başvurdu

object.Event -= MyFunction; 

object.Event  = MyFunction;

Bu işleri ama bir şekilde görünüyor. Bu senaryonun herhangi bir uygun kullanma önerileri;).

CEVAP
30 Aralık 2008, Salı


Baget açıkça uygulanan bir olay hakkında doğru açık arabirim uygulaması ve tam olay sözdizimi orada bir karışım yok, ancak). Muhtemelen buradan alabilirsiniz:

private EventHandler foo;

public event EventHandler Foo
{
    add
    {
        // First try to remove the handler, then re-add it
        foo -= value;
        foo  = value;
    }
    remove
    {
        foo -= value;
    }
}

Bu hiç veya çok noktaya yayın delegeler ekleyip biraz garip kenar durumlarda olabilir, ama bu pek mümkün değil. Ayrıca olayları normal bir şekilde değil, dikkatli belgelerine ihtiyacı var.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigDawsTv

    BigDawsTv

    20 HAZİRAN 2012
  • NPR

    NPR

    22 NİSAN 2006
  • thewinekone

    thewinekone

    17 Aralık 2005