SORU
17 ŞUBAT 2010, ÇARŞAMBA


Eylem<T> vs temsilci olay

Geliştiriciler oldukça alternatif olarak aşağıdaki kodları kullanarak gördüm. Ne bunlar arasında tam olarak ne farklar var ve hangisi standart? Hepsi aynı mı, Action Func<T> bir temsilci de olduğu gibi:

public event Action<EmployeeEventAgs> OnLeave;
public void Leave()
{
    OnLeave(new EmployeeEventAgs(this.ID));
}

VS

public delegate void GoOnLeave(EmployeeEventAgs e);
public event GoOnLeave OnLeave;
public void Leave()
{
    OnLeave(new EmployeeEventAgs(this.ID));
}

CEVAP
17 ŞUBAT 2010, ÇARŞAMBA


Fwıw, ne örnek, standart kullanır .NET kuralları. EventHandler<T> genel etkinlik beyan etmelidir:

public event EventHandler<EmployeeEventArgs> Leave;

"On" öneki olayı başlatan korumalı bir yöntem için ayrılmış olmalıdır:

protected virtual void OnLeave(EmployeeEventArgs e) {
    var handler = Leave;
    if (handler != null) handler(this, e);
}

Değilsinvarbunu bu şekilde, ama kimseye anında desen tanımak, kodunuzu anlamak ve nasıl kullanılacağını bilmek ve özelleştirin.

Ve özel bir temsilci bildirimi arasında seçim yapmak zorunda olmaması büyük avantajı var ve Action<>, EventHandler<> en iyi yoldur. Sorunuza cevap verebilecek.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • njhaley

    njhaley

    24 NİSAN 2006
  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011