C# Event Kullanımı II - Generic Events
C# Event Kullanımı yazımızda event kavramına giriş yapmıştık. Bu yazımızda generic event kavramını incelemeye çalışacağız.
EventArgs sınıfından türeyen kendi custon EventArgs sınıfımızı yazabiliriz:
CustomEventArgs sınıfımızı yazdıktan sonra artık delege tanımı yapmadan freamwork içerisinde event handle etmek için kullanılan EventHandle<> generic sınıfını kullanarak programımızı yazabiliriz.
Çıktı:
EventArgs sınıfından türeyen kendi custon EventArgs sınıfımızı yazabiliriz:
public class CustomEventArgs : EventArgs { public int PersonId { get; set; } public string FieldName { get; set; } public string NewValue { get; set; } }
CustomEventArgs sınıfımızı yazdıktan sonra artık delege tanımı yapmadan freamwork içerisinde event handle etmek için kullanılan EventHandle<> generic sınıfını kullanarak programımızı yazabiliriz.
class Person { public event EventHandler<CustomEventArgs> PersonHasChanged; public int PersonId { get; set; } private string _name; public string Name { get { return _name; } set { _name = value; //eger method set edildi ise if (PersonHasChanged != null) { CustomEventArgs c = new CustomEventArgs(); c.PersonId = this.PersonId; c.FieldName = "Name"; c.NewValue = value; PersonHasChanged(this, c); } } } } public class CustomEventArgs : EventArgs { public int PersonId { get; set; } public string FieldName { get; set; } public string NewValue { get; set; } } class Program { static void Main(string[] args) { Person p1 = new Person() { PersonId = 1, Name = "Safak" }; p1.PersonHasChanged += ShowChangedUser; p1.PersonHasChanged += SendChangedUserInformation; p1.Name = "Test"; Console.ReadLine(); } static void ShowChangedUser(object sender, CustomEventArgs e) { Console.WriteLine(@"Person ID: {0} Field: {1} New Value: {2}", e.PersonId, e.FieldName, e.NewValue); } static void SendChangedUserInformation(object sender , CustomEventArgs e) { Console.WriteLine(@"Person ID: {0} Bilgilendirme maili gonderiliyor", e.PersonId, e.FieldName, e.NewValue); } }
Çıktı:
0 yorum :
Yorum Gönder