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

  • kimberly p

    kimberly p

    23 Ocak 2010
  • steven johns

    steven johns

    11 Mart 2011
  • UniqueApps

    UniqueApps

    4 Ocak 2009