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

  • boogie2988

    boogie2988

    6 NİSAN 2006
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009