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

  • bethliebert

    bethliebert

    23 EKİM 2008
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011
  • TSE

    TSE

    12 Kasım 2012