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

  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011
  • TechXCentral

    TechXCentral

    12 Temmuz 2011