SORU
19 ŞUBAT 2009, PERŞEMBE


Olaylar ve Temsilciler ve ilgili uygulamaları arasındaki fark

Delegeler, sözdizimsel şeker olmaktan daha başka olaylar kullanmanın avantajları görmüyorum. Belki de yanlış anlama ama bu olay temsilci için sadece bir yer tutucudur gibi görünüyor.

Bana hangi kullanmak için zaman farkları açıklar mısınız? Ne avantajları ve dezavantajları nelerdir? Kodumuzu ağır olaylara dayanıyor ve bunun altına almak istiyorum.

Ne zaman olaylar üzerinde delege ve tersi kullanırsınız? Lütfen her iki ile gerçek dünya deneyimi devlet, üretim kodu söylüyorlar.

CEVAP
19 ŞUBAT 2009, PERŞEMBE


Anahtar event çok noktaya yayın kapsamı delegeler için bir değiştirici. Bu ve bir çok noktaya yayın temsilci ilan sadece pratik arasındaki farkları aşağıdaki gibidir:

  • Bir arabirim event kullanabilirsiniz.
  • Çok noktaya yayın temsilci çağırma access ilan sınıfı ile sınırlıdır. Davranışlarına rağmen temsilci çağırma için özel olarak. Atama amacıyla, erişime açık bir erişim değiştiricisi (örn public event) ile belirtilir.

Biraz ilgi, sen-ebilmek uygulamak - çok noktaya yayın delegeler, ve bu temeli = -= sözdizimi şifresini atama delegeleri için olaylar. Bu üç parçacıkları eşdeğer

B = new EventHandler(this.MethodB);
C = new EventHandler(this.MethodC);
A = B   C;

İki örnek, doğrudan atama ve kombinasyon atama hem gösteren.

B = new EventHandler(this.MethodB);
C = new EventHandler(this.MethodC);
A = B;
A  = C;

Örnek üç: daha tanıdık bir sözdizimi. Muhtemelen tüm işleyicileri kaldırmak için boş atama ile tanışmış.

B = new EventHandler(this.MethodB);
C = new EventHandler(this.MethodC);
A = null;
A  = B;
A  = C;

Özellikleri gibi, olayları hiç kimse kullanan tam bir sözdizimi vardır. Bu:

class myExample 
{
  internal EventHandler eh;

  public event EventHandler OnSubmit 
  { 
    add 
    {
      eh = Delegate.Combine(eh, value) as EventHandler;
    }
    remove
    {
      eh = Delegate.Remove(eh, value) as EventHandler;
    }
  }

  ...
}

...yoktam olarakbu da olduğu gibi

class myExample 
{
  public event EventHandler OnSubmit;
}

Ekle ve kaldır yöntemleri VB.NET kullanan oldukça tumturaklı söz daha dikkat çekicidir (operatör aşırı yükleme).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012
  • newport83

    newport83

    19 HAZİRAN 2006